Javascript函数只适用于Internet Explorer

时间:2011-08-03 19:41:23

标签: javascript internet-explorer firefox google-chrome

让我介绍IE的另一个技巧!

今天,令我惊讶的是我有相反的情况。我在Internet Explorer上运行良好,而不是FireFox和Chrome!说真的,有人知道为什么这在IE中起作用而在其他浏览器上不起作用? 这段代码似乎没用,但那是因为我已经解决了这个问题。我们走了:

<html>
<head>
<script>
function redirectFuncionTest(value){
document.getElementById(value).click();
return false;
}
</script>
</head>
<body>
    <input type="button" value="start redirectFuncionTest"
        onclick="redirectFuncionTest('idLink')" />
    <a id="idLink" name="namelink" href="http://www.google.com"></a>
</body>
</html>

有任何帮助吗?有没有其他方法可以做这样的事情?

感谢您的阅读!

6 个答案:

答案 0 :(得分:2)

click()方法仅存在于IE中。

相反,您可以写location = document.getElementById(value).href

答案 1 :(得分:2)

很难看到关于同一主题的上一个问题,

How do I programmatically click a link with javascript?

我建议使用jQuery或其他一些库(如果可用)。或者,只需使用

window.location = link.href;

绕过链接

答案 2 :(得分:0)

此处How do I programmatically click on an element in JavaScript?

<html>
<head>
<script>
if(typeof HTMLElement!='undefined'&&!HTMLElement.prototype.click) {
HTMLElement.prototype.click=function() {
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
}
}
function redirectFuncionTest(value){
  document.getElementById(value).click();
  return false;
}
</script>
</head>
<body>
  <input type="button" value="start redirectFuncionTest"
    onclick="redirectFuncionTest('idLink')" />
  <a id="idLink" name="namelink" href="http://www.google.com"></a>
</body>
</html>

答案 3 :(得分:0)

click()不是JavaScript方法。可能IE将其实现为自定义IE方法。

某些库(如jQuery)有这种方法。

click() (javascript) method is not working in FF

答案 4 :(得分:0)

好的,在你的帮助下,我写了一些类似于解决我问题的片段......

<html>                                                                  
 <head>                                                                  
 <script type="text/javascript" src="jquery.js"></script>          
 <script type="text/javascript">                                         
    $(document).ready(function() {
   $("#btn_go").click(function(){
   $(location).attr('href',"http://www.google.com");

   });
 });                                    
 </script>                                                               
 </head>                                                                 
 <body>       
    <input type="button" id="btn_go" value="go" />
 </body>                                                                 
 </html>

谢谢大家,你们真棒!

答案 5 :(得分:-2)

<强>元凶

document.getElementById...

是你的罪魁祸首,它不是跨浏览器的安全。我知道这会让学习非常困难。

解决方案:Javascirpt实用程序功能

Here's a cross-browser solution.

  function get_object(id) {
   var object = null;
   if (document.layers) {
    object = document.layers[id];
   } else if (document.all) {
    object = document.all[id];
   } else if (document.getElementById) {
    object = document.getElementById(id);
   }
   return object;
  }

替代解决方案:JQuery

如果您真的想要一个更简单的解决方案,请快速浏览一下JQuery。这是一个值得学习的新东西,但与开箱即用的javascript相比,它更具有跨浏览器兼容性。