代码只能在IE9标准下工作,有什么方法可以降级?

时间:2013-05-14 14:18:10

标签: javascript jquery internet-explorer bookmarklet

代码不起作用,直到我手动点击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调用或者它们被阻止。 它的工作就是填充网页表单,每次都会生成一个独特的书签。其他浏览器工作正常,但Internet Explorer只是喜欢打破.. 在我添加单选按钮代码之前,代码工作正常,我猜它与.prop有关,因为它在控制台中提到它。

2 个答案:

答案 0 :(得分:2)

在控制台打开之前,IE无法理解console.log。要将更改console.log修改为

window.console && console.log(...)

答案 1 :(得分:0)

每次打开页面时,您的浏览器似乎总是使用较低版本的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">