我怎样才能得到windowWidth,windowHeight,pageWidth,pageHeight,screenWidth,screenHeight,pageX,pageY,screenX,screenY将在所有主要浏览器工作?

我想从iframe调用父窗口JavaScript函数.
<script>
function abc()
{
alert("sss");
}
</script>
<iframe id="myFrame">
<a onclick="abc();" href="#">Call Me</a>
</iframe>
Run Code Online (Sandbox Code Playgroud) 我想制作一个关于HTML/JS 同源政策的社区维基,希望能帮助任何人搜索这个主题.这是SO上搜索次数最多的主题之一,没有统一的wiki,所以我去:)
相同的源策略可防止从一个源加载的文档或脚本从另一个源获取或设置文档的属性.此政策可以追溯到Netscape Navigator 2.0.
请保持示例详细,最好还链接您的来源.
如何从其他域调整iframe的大小
-编辑
向下滚动查看某些解决方案..或阅读如何不执行此操作:D
经过数小时的代码黑客攻击后,结论是iframe中的任何内容都无法访问,即使是在我的域上呈现的滚动条也是如此.我尝试了很多技术无济于事.
为了节省您的时间,请不要只使用sendMessages进行跨域通信. 我使用HTML <5的插件 - 转到底部以获得一个很好的例子:)
过去几天,我一直在尝试将iframe集成到网站中.这是一个短期解决方案,而另一方开发和API(可能需要几个月......)因为这是短期解决方案,我们想要使用easyXDM-我可以访问其他域,但很难让他们要求添加p3p标头,因为它是.....
3个iframe
我找到的最接近的解决方案是3个iframe - 但它是精神上的铬和野生动物园,所以我不能使用它.
用铬打开
http://css-tricks.com/examples/iFrameResize/crossdomain.php#frameId=frame-one&height=1179
测量滚动条
我发现了另一篇关于如何使用scrollheight尝试调整表单大小的文章..理论上它运作良好但我无法使用iframes滚动高度正确应用它.
document.body.scrollHeight
Run Code Online (Sandbox Code Playgroud)
该obvoisly使用身体高度(不能访问这些属性100%是基于客户端显示canvaz而不是x-domains文档高度)
我尝试使用jquery来获取iframes的高度
$('#frameId').Height()
$('#frameId').clientHeight
$('#frameId').scrollHeight
Run Code Online (Sandbox Code Playgroud)
返回值不同的铬和即 - 或根本没有意义.问题是框架内的所有内容都被拒绝 - 甚至滚动条......
计算样式
但是如果我在iframe的chrome中检查和元素,那么bladdy会向我展示iframe中的文档维度(使用jquery x-domain来获取iframe.heigh - 访问被拒绝)计算CSS中没有任何内容 
现在chrome如何计算出来?(编辑 - 浏览器使用其在渲染引擎中的内置重新渲染页面来计算所有这些设置 - 但是没有附加到任何地方以防止跨域欺诈..所以...)
HTML4
我读了HTML4.x的规范,它说那里应该有通过document.element公开的只读值,但它是通过jquery拒绝访问的
代理框架
我走了代理网站的路线并计算哪个是好的..直到用户通过iframe登录并且代理获得登录页面而不是实际内容.对某些人来说,调用两次页面也是不可接受的
http://www.codeproject.com/KB/aspnet/asproxy.aspx
http://www.johnchapman.name/aspnet-proxy-page-cross-domain-requests-from-ajax-and-javascript/
重新渲染页面
我没有走到这一步,但有一些jscript引擎会查看源代码并根据源文件重新呈现页面.但它需要黑客攻击那些jscripts ..这对商业实体来说不是一个理想的情况......而且有些人会把纯Java小程序或服务器端渲染
http://en.wikipedia.org/wiki/Server-side_JavaScript
http://htmlunit.sourceforge.net/ <-java不是jscript
编辑09-2013 更新
所有这些都可以通过HTML5套接字完成.但是easyXDM对于非HTML5投诉页面来说是一个很好的后备.
方案1非常好的解决方案!
使用easyXDM
在您的服务器上,您可以设置一个页面
<html>
<head>
<script src="scripts/easyXDM.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
var transport = new easyXDM.Socket(/** The configuration */{
remote: "http://www.OTHERDOMAIN.com/resize_intermediate.html?url=testpages/resized_iframe_1.html",
//ID of the …Run Code Online (Sandbox Code Playgroud) 我有一个跨域网站的iframe.我想读取iframe的DOM,我认为这是可能的,因为使用检查器,我甚至可以修改iframe的DOM.然而,我试图阅读它的每一种方式,我都遇到了相同的原始政策.我想要的只是从iframe加载到我的本地DOM中的内容.我以为它会那么简单$(document.body).find('iframe').html(),但那会返回空字符串.
我真的希望有一种方法可以做到这一点,因为我过去几天一直在做的工作是基于这种可行性.
谢谢
我有这个HTML代码:
<html>
<head>
<script type="text/javascript">
function GetDoc(x)
{
return x.document ||
x.contentDocument ||
x.contentWindow.document;
}
function DoStuff()
{
var fr = document.all["myframe"];
while(fr.ariaBusy) { }
var doc = GetDoc(fr);
if (doc == document)
alert("Bad");
else
alert("Good");
}
</script>
</head>
<body>
<iframe id="myframe" src="http://example.com" width="100%" height="100%" onload="DoStuff()"></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题是我收到消息"Bad".这意味着iframe的文档没有正确获取,GetDoc函数返回的实际内容是父文档.
如果你告诉我哪里弄错了,我会很感激.(我希望在IFrame中托管文档.)
谢谢.
我想从iframe默认的普通白色背景和黑色文本中为iframe中的内容制作背景颜色为黑色和文本颜色为白色.iframe src属性指向我无法访问的不同域,或者无法在该域中放置任何文件或样式表.因此,鉴于这些条件,可以在iframe内容中进行这些样式更改,如果是,那么如何?
我有一个已发布的Google文档的iframe.该文档的内容可能会发生变化,因此我想根据内容自动调整iframe的高度.我找到了一些解决方案,但它们都需要访问子文档的头部.有没有人知道如何做到这一点?
您可以查看我在下面使用的代码的摘录:
#faq{
height: 800px;
overflow: hidden;
position: relative;
width: 660px;
border-top: 1px solid #90C547;
border-bottom: 1px solid #90C547;
}
<div id="faq"><iframe id="faqif" src="https://docs.google.com/document/..../pub?embedded=true" frameborder="0" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:900px;width:832px;position:absolute;top:-92px;left:-150px;right:0px;bottom:0px;z-index:0;" height="900px" width="832px"></iframe></div>
Run Code Online (Sandbox Code Playgroud) 这是iframe代码:
<div id="OutDiv" class="outerdiv">
<iframe src="http://beta.sportsdirect.bg/checkout/onepage/" id="InnerIframe" class="FrameCSS" scrolling="no"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
这是上面iframe调用的按钮的HTMl代码:
<button type="button" id="SuperWebF1" title="Continue" class="button">Continue</button>
Run Code Online (Sandbox Code Playgroud)
这是我用来在加载页面时触发按钮单击的jQuery函数:
$('#SuperWebF1').trigger( "click" );
Run Code Online (Sandbox Code Playgroud)
但是只有当我将jQuery代码放在按钮源中并且iframe使用脚本调用按钮时,才会这样工作.
我想制作一个点击iframe外部按钮的活动.可能吗 ?
提前致谢!
我正在一个WordPress网站上工作,其中安装了很多wordpress插件.
wordpress网站上安装的插件有以下选项:
当我单击查看详细信息选项时,我在图像中显示如下所示的空白屏幕,但是当我在新窗口或选项卡中打开时,它可以正常工作.
在检查控制台时,我收到以下错误(单击"查看详细信息"无法在同一页面上打开时):
Blocked a frame with origin from accessing a cross-origin frame.
at Contents
at Function.map
at a.fn.init.n.fn.(anonymous function) [as contents]
and many other places.
Run Code Online (Sandbox Code Playgroud)
问题陈述:
我想知道我需要在wordpress中修改哪个文件才能解决此错误.这个错误似乎存在于每个wordpress插件中.它适用于新的选项卡或窗口,但无法在同一页面中工作.
我有使用iframe的页面:
页面a.html:
<div id="results">
<iframe src="../b.aspx"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
现在我想在iframe中获取元素,所以我尝试:
<script type="text/javascript">
jQuery(document).ready(function($) {
var tmp = $('#results iframe').contents().find('html').html();
alert(tmp);
});
</script>
Run Code Online (Sandbox Code Playgroud)
但结果返回是:<head></head><body></body>,头部或身体内容不含.我需要帮助
javascript ×9
iframe ×8
html ×7
jquery ×5
css ×3
ajax ×1
cross-domain ×1
document ×1
google-docs ×1
html5 ×1
layout ×1
onclick ×1
scripting ×1
wordpress ×1