我在SCRIPT5上阅读了很多其他文章:在IE9中访问被拒绝的问题,但据我所知,这个有点不同,我不确定为什么会发生这种情况。
使用标准2011主题的Wordpress 3.4.1安装出现了这种情况。我使用以下函数将我的脚本排入队列:
function my_scripts(){
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js',null,null,true);
wp_register_script('cycle', 'http://ajax.microsoft.com/ajax/jquery.cycle/2.88/jquery.cycle.all.js',null,null,true);
wp_register_script('plugin', get_stylesheet_directory_uri() . '/scripts/plugin-init.js',null,null,true);
wp_enqueue_script('jquery');
wp_enqueue_script('cycle');
wp_enqueue_script('plugin');
}
首先,jquery
和cycle
脚本都是从CDN中提取的。 plugin
脚本为空,但对单个元素的基本cycle
调用除外。
此时所有浏览器都能正常运行,但IE9除外。我收到以下错误:
SCRIPT5: Access is denied
jquery.min.js, line 2 character 68522
我很快发现这是一个跨领域问题:
Access denied to jQuery script on IE
SCRIPT5: Access is denied in IE9 on xmlhttprequest
我发现这很奇怪,因为我的插件中没有交叉原点功能。问题也出现在jquery
本身而不是我的代码上。尝试了几个建议的修复,但没有运气。
尝试了一些基本的东西。将脚本直接移动到页脚。尝试将其直接移动到标题中。尝试将我的脚本排除在外。此时拔掉我的头发。
我最好的选择是实际看到导致代码错误的原因(因为我无法在缩小版本上)。此时代码直接在标题中,因此从脚本中删除了.min
,进行了刷新,并且TA-DA:现在一切都正常运行。
如果我尝试使用my_scripts()
&将未分解的脚本声明移回wp_register_script
函数wp_enqueue_script
它会再次失败。如果我尝试将未经通知的脚本声明移动到页脚中,它将再次失败。我当时没有测试本地副本,只测试了CDN版本。
这是相同的SCRIPT5错误,但遗憾的是我没有错误产生的代码。前几天这是在办公室,我周末休息。我试图在我的个人沙箱上重现这些事件,但是在重新创建错误方面没有成功,这让我相信一些未列出的内容可能是罪魁祸首。
有谁知道这里发生了什么?为什么jquery.min
会在未通知文件的情况下失败?为什么未通报的文件会继续失败,除非它直接在<head>
?
很高兴提供更多信息,虽然有些信息可能要等到我下周回到工作岗位。一旦我能够,我将尝试发布剩下的代码。
答案 0 :(得分:20)
我有同样的问题,jQuery 1.8.1为我解决了这个问题
答案 1 :(得分:2)
出于某种原因,@ axel的回答对我不起作用。相反,我决定将文件托管在与我的HTML文件相同的服务器上并修复它(至少对我而言)