外部javascript文件注入不工作在chrome上
external javascript file injection not working on chrome
我已经给了这个函数注入外部javascript文件到渲染的html:
function inject(src, cb, target){
target = target || document.body;
var s = document.createElement('SCRIPT');
s.charset = 'UTF-8';
if(typeof cb === 'function'){
s.onload = function(){
cb(s);
};
s.onreadystatechange = function () {
(/loaded|complete/).test(s.readyState) && cb(s);
};
}
s.src = src;
target.appendChild(s);
return s;
}
,这是调用函数:
$(function (){
inject(swifttagurlftlpre43sc,function(script){
var a = swifttagdiv.firstChild.attributes[2].value.substr(11);
var is = swifttagdiv.firstChild.firstChild.src;
var onLine = (is.substring(is.lastIndexOf('/') + 1) == 'staffonline.png');
if (onLine) {
$('#spanactive2').html('<span style="color: #567591;"><?php echo($content->getString('active')); ?><'/span>');
$('#chaton2').html('<img src="/site/img/chaton.gif" alt="" />');
$('#chat_box_timer').click(function() { eval(a); });
} else {
$('#live_chat_block_timer').remove();
$('#chaton2').html('<img src="/site/img/chatoff.png" alt="" />');
}
});
});
它在Firefox上运行良好。它不工作在铬虽然。开发工具给了我这个错误:未捕获的TypeError:不能调用null的appendChild方法
我如何修复,或者至少开始调试这个?
我很难在onload完成之前正确访问body(我曾认为这是IE问题,但它可能更普遍)。会是这样吗?
我的最佳猜测是,不同浏览器之间生成的DOM不同,而swifttagdiv。在chrome中,firstChild没有属性[2],但在其他浏览器中有。它所拥有的是attributes['href']属性。所以解决方案是改变
var a = swifttagdiv.firstChild.attributes[2].value.substr(11);
var a = swifttagdiv.firstChild.attributes['href'].value.substr(11);
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- javascript window.open将无法在Chrome控制台上工作
- 如何编写在Chrome和IE中正常工作的JavaScript
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- NaN:Firefox和IE中的NaN,CHROME工作正常
- jquery日期转换chrome工作,但IE和firefox't
- Chrome工作区无法使用源地图和Javascript
- 数组比较在Chrome工作,但不与Chrome IPAD
- 如何获得一个值从选项时选择(此代码为chrome工作)
- HTML表单与javascript得到"在IE,但在Chrome工作
- 简单的脚本与onclick事件在Chrome工作良好,但在Firefox失败
- 在Firefox剑道按钮文本不改变,而在IE和Chrome工作
- Ajax GIF加载器不工作在IE和Firefox(最新),但在Chrome工作
- Firefox返回TypeError: document.getElementById(..)为空,但Chrome工作正
- 纯Javascript: onClick切换行/图像:Firefox/Chrome -工作:IE -不工作
- 为什么if (condition) {statements} else返回;"在Chrome工作
- 我怎么能得到jsFiddle在Chrome工作
- 模态对话框与Mozilla工作,但不与Chrome工作