在Internet Explorer中不会触发单击触发器

时间:2012-01-23 16:49:56

标签: jquery

我在页面加载时运行点击触发器来显示prettyPhoto的iframe。但是,除非我使用IE 9的开发人员工具,否则触发器不会运行。 它在谷歌运行良好。

基本上它会在#字符串后面搜索目标文本。如果文本在那里,那么它将触发处理程序。有任何想法吗?我的网址#是 - http://www.nvcc.edu/home/ssuh/wall3/#nessie-vanta

   <script>
    var $ = jQuery.noConflict();
    jQuery(window).load(function(){

$('#wall1').wallmasonry({});
    $("a[rel^='test']").prettyPhoto({deeplinking:false, 
                                              iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no" scrolling="no"></iframe>'}
                                       );

var target = window.location.href.split('#')[1];

    if (target == 'nessie-vanta') { 

   console.log("tester hit");
   $('a#nessie-vanta').trigger('click');
   alert("nessie");
   };

   })
  </script>

2 个答案:

答案 0 :(得分:2)

这是因为IE不支持console.log。在IE中它会在该行抛出错误并打破进一步的javascript执行。

尝试这样的事情

   if (target == 'nessie-vanta') { 
      if(window['console'] !== undefined){
         console.log("tester hit");
      }
      $('a#nessie-vanta').trigger('click');
      alert("nessie");
   }

答案 1 :(得分:1)

首先,您可以使用location.hash https://developer.mozilla.org/en/DOM/window.location

获取哈希值

如果您没有开发人员工具,则console.log会破坏IE。摆脱console.log并且应该假设target == 'nessie-vanta'为真