我认为这不可能,但今天早上我讨厌IE6两倍。
请不要误解我的原因,但我会尝试解释我们想要实现的目标。 我们有2个应用程序正在运行,比方说APP1& APP2,两者都在相同的域。 APP1包含一个托管在APP2上的JavaScript文件。这个JS文件将:
所以最后在APP1中我们有一个标题,其中的内容是由APP2生成的,屏幕上没有IFrame。
问题出在第4步;这适用于除IE6之外的所有浏览器(这可能是Web开发中最常用的句子吗?)。 尝试访问iframe的contentWindow.document时出现JS错误:“访问被拒绝”。我不是专家,但是我理解这个错误,如果两个应用程序不在同一个域,但它们是(dev.echnet / APP1& dev.echnet / APP2),你会得到。
这是我用于上述步骤的代码(如果不是IE6则取出未执行的内容): (1),(2)& (3):
var elIf;
$().ready(function()
{
elIf = document.createElement('<iframe name="uhframename">');
elIf.setAttribute('id','idUhFrame');
document.body.appendChild(elIf);
var uhDiv = document.createElement('div');
document.body.appendChild(uhDiv);
elIf.src='dev.echnet/APP1?nocache='+Math.random();
getText();
}
(4)
function getText() {
var sContent = "";
if (elIf.contentWindow.document.body) { // access denied on elIf.contentWindow.document
...
}
}
我已经搜索过很多东西并尝试了很多我发现的可能性(也是在SO上),但它们似乎都没有解决这个问题。
我还尝试通过将其来源设置为明确地在IFrame上设置域:
“的javascript:(函数(){document.open(); document.domain的= \ 'dev.echnet \'; document.close();})()”
但我不确定这是否有任何影响,因为我将源设置为更进一步的其他内容。无论如何,既然它是同一个域,它应该没关系?
希望得到一些帮助或有人击落所有IE6用户(现在是一项可行的任务),所以我可以跳过这个任务: - )。
答案 0 :(得分:0)
在此处讨论了另一个问题之后,我想出了这个解决方案。
似乎并不总是需要.document
。
我正在使用Chrome,它不能与.document
一起使用,但它的功能就像一个魅力