gpt4 book ai didi

javascript - 从 jquery 插件中获取 iframe 的文档变量?

转载 作者:行者123 更新时间:2023-11-30 06:06:46 24 4
gpt4 key购买 nike

我创建了一个新的 iframe,将其附加到 body,然后尝试获取其“document”变量,如下所示:

var $iframe = $( "<iframe name='my-frame'>" );
$iframe.appendTo( $("body") );

var doc = null;

if($.browser.msie){
doc = window.frames["my-frame"].document; // 'access denied' in IE
} else {
doc = $iframe[0].contentWindow.document;
}
doc.close();

这可以独立运行,但一旦我尝试从 jQuery 插件中执行此操作,IE 就会显示“访问被拒绝”。

(function($) {
$.fn.jqprint = function (options) {

// the above code fails in IE with above error when inserted here

}
})(jQuery);

奇怪的是这两种方式都可以在 IE 中独立运行,插入了浏览器检查以进行调试。

我猜这是某种范围问题,“文档”无法从匿名函数或类似函数中访问。有什么指点吗?

最佳答案

我不能在这里重现这个。这两种方法都可以在 IE6 和 IE7 中使用 jquery 1.4.2 和 1.4.3 正常工作,即使没有浏览器检查。

HTH

旁注:
出于某种原因 [仅在 Linux 上,只有 IE7,IE6 可以!],只要我添加了例如doc.write() (doc.open(),...) 任何地方,即使在一些 setTimeout 之后,大约每隔两次我重新加载页面时,iframe 就不会出现在页面上。然后 $iframe[0] 仍然是一个对象,但是 $iframe[0].contentWindow 是未定义的(也是 .readyState,.src,...)导致“未指定的错误”,上面的代码在任一变体中,即使没有涉及 jquery 和静态 iframe。但是在 Windows 上不可重现。

关于javascript - 从 jquery 插件中获取 iframe 的文档变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com