所以我有以下它在大多数浏览器中工作得很好,除了在IE8及更早版本中它只会在你第一次访问页面或ctrl + f5(清除缓存)并查看页面时运行。发生的事情是这个影响的项目是在我的页面的主布局/模板中,所以当我遍历网站时它不会加载。
例如我在主页上,点击进入个人栏目,期望该项目在下一页上加载,但它甚至没有出现。
$(document).ready(function () {
if (window.document.domain == "developer10.machine") {
var oScript = document.createElement('script');
oScript.type = 'text/javascript';
oScript.src = '/js/uk_converter.js';
// most browsers
oScript.onload = function () {
renderCurrencyConverter('GBP', 'EUR', 1.00);
}
// IE
oScript.onreadystatechange = function () {
if (this.readyState == 'loaded' && ($.browser.msie && parseInt($.browser.version, 10)))
{
renderCurrencyConverter('GBP', 'EUR', 1.00);
}
}
document.body.appendChild(oScript);
}
});
答案 0 :(得分:3)
只要设置了已存在于缓存中的脚本的src,就会完成加载。由于在设置src后添加了onload处理程序,因此永远不会调用onload处理程序。在设置处理程序后尝试设置src。
$(document).ready(function () {
if (window.document.domain == "developer10.machine") {
var oScript = document.createElement('script');
oScript.type = 'text/javascript';
// most browsers
oScript.onload = function () {
renderCurrencyConverter('GBP', 'EUR', 1.00);
}
// IE
oScript.onreadystatechange = function () {
if (this.readyState == 'loaded' && ($.browser.msie && parseInt($.browser.version, 10)))
{
renderCurrencyConverter('GBP', 'EUR', 1.00);
}
}
oScript.src = '/js/uk_converter.js';
document.body.appendChild(oScript);
}
});
或者尝试jquery脚本加载器:
$(document).ready(function () {
$.getScript("/js/uk_converter.js", function () {
renderCurrencyConverter('GBP', 'EUR', 1.00);
});
});