【问题标题】:a href=javascript:function() in firefox not workingFirefox 中的 href=javascript:function() 不起作用
【发布时间】:2016-08-09 17:16:24
【问题描述】:

我尝试在按钮中使用a href=javascript:function(),并带有执行它的功能。它在 Chrome 中有效,但在 Firefox 中无效。

Firefox 不会提醒并打开空白标签。

有人可以帮助我吗?

<script>
function verifyisbot() {
alert("test."); 
var win = window.open("http://yahoo.com", '_blank');
win.focus();
}
</script>

下面是按钮代码

<div class="frb_textcenter">
<a  target="_blank" class="frb_button frb_round  frb_center frb_fullwidth" href="Javascript:verifyisbot();">
click here
</a>
</div>

更新

我应该在 wordpress 中使用实时编辑器(profitbuilder)来生成页面和按钮。我没有区域可以向按钮插入额外的 javascript onclick 函数。所以我想在实时编辑器中使用“ahref”空白字段来输入javascript调用函数来启动函数。

有什么方法可以在不使用 onclick 事件的情况下通过 ahref 完成这项工作?或者我可以在 ahref 字段中指定 onclick 函数吗?

抱歉 test() 实际上是 verifybot() 函数,错字错误

【问题讨论】:

  • 为什么不使用 onclick 而不是 href?这种方法对ie9也有一些问题
  • 你试过全小写的javascript:吗?
  • 不要将 JavaScript 与 HTML 混用。 &lt;a id="verify" ...&lt;script&gt;window.onload = function () { document.getElementById('verify').addEventListener('click', test); };&lt;/script&gt;
  • 嗨 siabel,我应该使用实时编辑器添加,如果我想使用他们的按钮,我可以使用没有自定义字段来添加 onclick 功能。
  • 你好 torazaburo,我稍后会尝试所有小写并更新。

标签: javascript html firefox


【解决方案1】:

您可以仅使用href 属性来实现目标:

<a href="javascript:void(verifyisbot())" class="frb_button frb_round frb_center frb_fullwidth">
  click here
</a>

它可以工作,因为当浏览器跟随javascript: URI 时,它会评估URI 中的代码,然后用返回值替换页面内容,除非返回值是undefinedvoid 运算符可用于返回 undefined

【讨论】:

    【解决方案2】:

    使用onclick 事件而不是a href=javascript。它适用于firefox。见下文:

    <div class="frb_textcenter">
    <a target="_blank" class="frb_button frb_round  frb_center frb_fullwidth" onclick="test()">click here</a></div>
    
    <script>
    function test() {
      alert("test."); 
      var win = window.open("http://yahoo.com", '_blank');
      win.focus();
    }
    </script>
    

    更新 1:您可以不使用 javascript。您只需在 href 属性中添加链接。见下文:

    <a target="_blank" class="frb_button frb_round  frb_center frb_fullwidth" href="http://yahoo.com">click here</a></div>
    

    【讨论】:

    • 嗨 msantos,我正在使用实时编辑器,但似乎无法使用 onclick 标记按钮。有什么办法可以使用 ahref 字段来触发警报并打开新标签?
    • 是的,但我也想要警报功能。它也可以通过 ahref 调用吗?
    • 唯一的办法是用javascript处理。看看Mike McCaughan的解决方案。
    • 我明白了,是的,我相信 mike 解决方案会起作用。虽然实时编辑器的问题是它没有字段供我们输入或添加自定义 id 到按钮。它很烦人:/
    【解决方案3】:

    认真考虑将 JavaScript 和 HTML 分开,这样问题就会消失。例如,为您的锚添加一个 ID 并通过脚本添加一个事件处理程序:

    <div class="frb_textcenter">
      <a id="verify" target="_blank" class="frb_button frb_round  frb_center frb_fullwidth" href="http://yahoo.com">
        click here
      </a>
    </div>
    

    稍后...

    <script>
    function test() {
      alert("test."); 
      var win = window.open("http://yahoo.com", '_blank');
      win.focus();
    }
    window.onload = function () { 
      document.getElementById('verify').addEventListener('click', test); 
    };
    </script>
    

    请注意,通过提供的示例,您实际上根本不需要 JavaScript。 HTML 本身将导致使用 Yahoo! 打开一个新窗口/选项卡。加载中...

    【讨论】:

    • 嗨,迈克,谢谢你的代码,我相信你的代码可以使用 id 名称,但问题是我使用的实时编辑器不允许我们输入 id 名称或自定义 html 到他们的按钮产生。哪个很烦人.. 有什么方法可以使用实时编辑器提供的 ahref 字段来启动该功能或发出警报并打开一个新选项卡?如果可以,那就太棒了
    • @jeremyok 将 onload 更改为使用 document.querySelector('[href="http://yahoo.com"]') 而不是 document.getElementById('verify'),假设 href 对文档是唯一的。
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 2017-09-15
    • 2011-02-04
    • 2011-12-16
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多