代码不工作,直到我手动按下F12,点击文档模式:IE9标准,然后只有它决定工作。(我真的需要解决这个问题,否则我的目标用户每天会点击100次F12,这很烦人。)我知道IE是垃圾,但遗憾的是我没有选择,我的目标受众不喜欢花一秒钟的时间把它改成IE9标准。这是我的代码(它是一个书签)
javascript:(function(){
a=document.createElement('script');
a.setAttribute('src','//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js');
document.body.appendChild(a);
data='[["#txtapplicantlname","agrawal","text"],["#txtapplicantfname","aayush","text"],["#txtfather","Ranjan","text"],["#txtmother","Neelam","text"],["#txtPincode","452010","text"],["#txtPhone","2147483647","text"],["#txtEmail","aayush@mail.com","text"],["#rdosex_0,#rdosex_1","1","radio"]]';
for(a=$.parseJSON(data),b=a.length-1;0<=b;b--){
c=a[b];
if (c[2] == 'text') {
console.log(c);
$(c[0]).val(c[1]);
} else if (c[2] == 'radio'){
rdata = c[0].split(',');
rnum = c[1] - 1;
select = rdata[rnum];
$(select).prop('checked', true);
console.log(select);
}
}
})();
注意:如果有人想知道,数据变量被传递为json,因为bookmarklet是动态生成的。它操作的网站是HTTPS,因此我不能使ajax调用到我的服务器或他们被阻止。它的工作是填写网页表单,每次都会生成一个独特的书签。其他浏览器工作得很好,但ie就是喜欢崩溃。代码在我添加单选按钮代码之前工作,我猜它与。prop有关,因为它在控制台中提到了它。
IE在控制台打开之前无法理解console.log。修改console.log
为
window.console && console.log(...)
每次你打开网页,你的浏览器总是会转到较低版本的IE。解决这个问题的一种方法是,如果你想强迫用户加载最大的IE浏览器版本/chrome版本,你应该在<html>
标签
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这样做可以强制浏览器加载IE9标准
<meta http-equiv="X-UA-Compatible" content="IE=9">