IE8在第一次执行后未运行javascript
因此,我有以下几点:它在大多数浏览器中工作得非常好,除了IE8和更旧的浏览器之外。它只在您第一次访问页面或ctrl+f5(清除缓存)并查看页面时运行。所发生的事情是,此影响的项目位于我的页面主布局/模板中,因此当我遍历站点时,它不会加载 例如,我在主页上,我点击进入个人部分,希望该项目加载到下一页,但它甚至没有出现IE8在第一次执行后未运行javascript,javascript,jquery,internet-explorer,internet-explorer-8,Javascript,Jquery,Internet Explorer,Internet Explorer 8,因此,我有以下几点:它在大多数浏览器中工作得非常好,除了IE8和更旧的浏览器之外。它只在您第一次访问页面或ctrl+f5(清除缓存)并查看页面时运行。所发生的事情是,此影响的项目位于我的页面主布局/模板中,因此当我遍历站点时,它不会加载 例如,我在主页上,我点击进入个人部分,希望该项目加载到下一页,但它甚至没有出现 $(document).ready(function () { if (window.document.domain == "developer10.machine") {
$(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);
}
});
一旦您设置了脚本的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);
});
});
你能举个例子吗?嗯,是的,我只是想确定我在做你脑子里想的事情。@Anicho也许可以尝试使用JQuery的脚本加载器,它允许你为脚本成功加载并跨浏览器工作时设置处理程序。