/*来注解一下*/
javascript:(
     function(q){
          !!q?q.toggle():(
                 function(d,j){j=d.createElement('script');
                         j.src='//ime.qq.com/fcgi-bin/getjs';
                         j.setAttribute('ime-cfg','lt=2&im=212');
                         d.getElementsByTagName('head')[0].appendChild(j)
               }
         )(document)
     }
)(window.QQWebIME)

解决方案 »

  1.   

    如果window.QQWebIME存在  执行 window.QQWebIME.toggle方法
    否则添加一个script 引用
      

  2.   

    !!q 这是把非boolean类型变量转为boolean类型
      

  3.   


    function(q){//匿名函数,有一个参数,在最后加上()立即执行
              !!q?q.toggle():(//三目表达式 2个!表示转换为bool型,意思是存在则执行q.toggle。q为后面传入的那个参数window.QQWebIME,如果q不存在则执行后面的代码
                     function(d,j){j=d.createElement('script');//匿名函数,有2个参数,JS的特性可以只传入一个,则d表示后面传入的 document。 createElement是创建标签
                             j.src='//ime.qq.com/fcgi-bin/getjs';//设置script标签的属性
                             j.setAttribute('ime-cfg','lt=2&im=212');//同上
                             d.getElementsByTagName('head')[0].appendChild(j)//将script标签加入head节点的里面
                   }
             )(document)
         }
    )(window.QQWebIME)好吧。 写点注释
      

  4.   

    4楼正解,LZ多加的javascript:把我弄晕了。
      

  5.   


    用javascript:  这个 应该是直接将代码写在 标签里吧!
      

  6.   


    四楼已经详细地给了注释,不过在这里我要补充一下前面"javascript:"这个javascript:称为JavaScript伪协议,一般写在链接的url上,用于执行javascript动作;
    比如我们我想在标签a上执行某个动作而不是页面跳转,那么就可以使用JavaScript伪协议,这个比一般使用“#”好得多,使用“#”会发生文档内位置跳转。而使用JavaScript伪协议,就可以达到执行动作而不跳转的目的,这个时候只需要保证JavaScript伪协议的最后一条语句无返回值即可。lz代码中的伪协议一个匿名函数,函数默认返回undefined,此外我们还可以使用void 0;来是使伪协议无返回值。
      

  7.   


    script并不存在跨域问题!
    一般的跨域问题为iframe跨域、ajax跨域!
      

  8.   


    嗯, 基于客观上来说, js不存在所谓的跨域,
    但你的理解和我的有些出入, 平时, 用ajax调用后端服务器数据都是同一域名下, 
    但这段代码是调用第二方服务器的数据, 也就是不同域名, 例如, 
    你打开了一个页面叫 www.abc.com. 但在这个页面里有一个div里显示的信息却是 www.bbc.com网站数据,而且是实时刷新(即二网站的数据同步变化,通过这ajax调用) ,
    那么, 这个ajax调用的bbc.com数据时, 不通过abc.com后台间接返回, 是直接向bbc.com服务器发请求。