【问题标题】:href does not work when link returned from function从函数返回链接时,href 不起作用
【发布时间】:2017-09-03 02:14:27
【问题描述】:

以下作品:

<a id="showDirectionsMapLink" href="#" onclick="href='comgooglemaps://maps.google.com/maps?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA&center=37.422185,-122.083898&zoom=10';">test</a>

它在谷歌地图应用程序中打开。

以下不起作用:

<a id="showDirectionsMapLink" href="#" onclick="showDirectionsMap();">test2</a> 

showDirectionsMap() 函数将获取所选帐户的位置并返回与上述完全相同的字符串。 href='comgooglemaps://maps.google.com/maps?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+弗朗西斯科,+CA&center=37.422185,-122.083898&zoom=10'

什么都没发生

【问题讨论】:

  • 设置链接href不会触发点击,它只会改变href。您可以使用window.location.href 使其重定向,或者只是以编程方式触发click
  • 实际上下面的代码显示了带有函数字符串的警报... test2
  • onclick 代码返回的字符串不用于任何用途。它不会成为链接的 href。
  • 我尝试了 window.location.href,但它没有将我定向到谷歌地图应用程序......它向我显示了来自 salesforce 的页面,该页面的 URL 不起作用。这是在 salesforce 的视觉力量页面中。

标签: javascript html hyperlink onclick href


【解决方案1】:

如果您希望使用函数返回的 URL,您必须将其分配给 this.href,就像您在使用文字字符串的版本中所做的那样。

<a id="showDirectionsMapLink" href="#" onclick="this.href = showDirectionsMap();">test2</a> 

【讨论】:

  • 谢谢 这是 Salesforce 的视觉力量。因此,当我使用您发布的代码时,它会将我定向到我的 salesforce 应用程序中的空白页面。有办法解决吗?
  • 我不确定为什么它与您的第一个示例不同。 Javascript 控制台是否有错误?
【解决方案2】:

html

<a id="showDirrectionsMapLink">your link</a>

JS(使用 JQuery):

function forceLink(event){
  event.preventEvent();
  event.stopPropagination();
  var link = 'http://google.com'; // whatever you want
  window.location.href = link; // automaticly forces the browser to this location
}

$('#showDirrectionsMapLink').on('click' forceLink);

如果你想在 a 标签上使用 onClick,你需要停止标准执行并手动重定向。标准执行在您更改之前读取 href

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 2017-04-10
    • 2011-07-08
    相关资源
    最近更新 更多