2

你能帮我解决这个...

我有一个主页面,里面有一个 iframe(将加载 .asp 页面)。此 .asp 页面具有可以相互跳转的链接,始终位于 iframe 内。他们工作正常。

在主页上,我有一个显示/隐藏标题和菜单 div 的按钮,因此用户只能看到 iframe 以获得空间。当标题和菜单 div 可见/隐藏时,我正在使用 jQuery 更改按钮图像......它工作正常。

带有按钮的主页 -> iframe -> page_a.asp -> <- page_b.asp

奇怪的是,当我从 page_b 多次更改 page_a 时,按钮停止工作,并给出错误:

jquery-1.9.1.js 上的权限被拒绝:第 3896 行,有时第 4392 行

a -> b -> a -> b -> 按钮显示/隐藏 -------- 停止工作

a -> b -> 按钮显示/隐藏 -> a -> b ... ---- 工作正常

我正在使用 IE9 ...在 Firefox 或 chrome 中它工作正常!

如果您需要其他任何可能有帮助的东西,我在这里 :)

谢谢。

这是我正在使用的 jQuery 代码:

$('#bt_menu').click(function(){
    $('#logo, #menu').slideToggle('fast', function(){
        if ($(this).is(":hidden") == true)
            //{$('#bt_menu p').text('Show MENU');}
            {$('#bt_menu').css('background-image','url(/images/down.png)');}
        else
            //{$('#bt_menu p').text('Hide MENU');}
            {$('#bt_menu').css('background-image','url(/images/up.png)');}
    });
});

如果我简单地将其应用于 div,则错误是相同的。所以问题不在于这段代码。


我认为错误与 Iframe 高度有关......我有这个函数来适应内容的高度:

$('iframe').load(function () {
    iframeHeight = $(this).contents().find('body').height();
    $(this).css('height', iframeHeight + 30);
});

如果我对此发表评论,它可以正常工作。我究竟做错了什么?

4

1 回答 1

0

试试这个解决方案:在 IE 高级设置中,在浏览下取消勾选“禁用脚本调试(Internet Explorer)”并在命令提示符下运行它(具有管理员权限):

regsvr32.exe "%ProgramFiles(x86)%\Common Files\Microsoft Shared\VS7Debug\msdbg2.dll

如果它不起作用,请尝试迁移到支持更好 IE 的 jquery 2.0。

我还为您找到了本教程http://www.jquery4u.com/ie/jquery-1-9-1-overcomes-internet-explorer-678-javascript/ [如何 JQUERY 1.9.1 克服 IE 教程][ 1]这可能会帮助您对IE进行一些代码适配。

否则,您可以尝试标记调用:

<iframe id="myFrame" onload="myFunction();"></iframe>

并将您的 js 代码放入 myFunction()

于 2013-05-23T11:37:37.720 回答