浏览了这些问题,关于“ReferenceError foo is not defined”的主题几乎没有类似的问题。但是,我无法检测到代码中的错误并使其正常工作。它在 Chrome 和 Safari 中运行良好,但在 IE、Opera 和 Firefox 中则不行:
HTML 中的代码
<a href="javascript:foo(1)" target="_parent">
将放置在标头中的 javascript 称为
<script type="text/javascript" src="http://www.site.com/include/script.js"></script>
定义如下:
function foo(language){
url = window.parent.location.href;
parts = url.split('/');
page = parts[3];
newUrl = "";
if (language == 1){
newUrl = "http://www.site1.com/" + page;
} else if (language == 2){
newUrl = "http://www.site2.com/" + page;
} else{
newUrl = "http://www.site3.com/" + page;
}
window.parent.window.location.href = newUrl;
}
阅读我测试的相关问题以更改为window.foo = function(language){...}
,但没有帮助。
看起来很简单,而且很简单,但出于某种原因, foo 在 IE 和 firefox 中是未定义的。
应该补充一点,javascript 位于“top.html”中,它是每个页面的嵌入式 iframe。chrome 以某种方式管理这个,而 IE 没有(但如果我浏览到http://www.site1.com/top.html并单击调用重定向(语言)的按钮,脚本可以工作;)