【问题标题】:Redirect to a new windows, with JavaScript, with a onclick on <a></a>使用 JavaScript 重定向到新窗口,点击 <a></a>
【发布时间】:2021-02-04 15:34:57
【问题描述】:

我正在制作此代码以将其插入我的网站,以检测设备中的操作系统,并根据它们拥有的操作系​​统重定向到不同的页面。另外,如果我将代码上传到我的网站,href 并不能很好地工作,它会搜索https://example.com/thehref 而不是单独的 href。

这是我一直在做的,来解决问题。

<script>

  var OSName = "Unknown OS";
    if (navigator.userAgent.indexOf("Win") != -1) OSName = 1;
    if (navigator.userAgent.indexOf("Mac") != -1) OSName = 0;
    if (navigator.userAgent.indexOf("Linux") != -1) OSName = 1;
    if (navigator.userAgent.indexOf("Android") != -1) OSName = 1;
    if (navigator.userAgent.indexOf("like Mac") != -1) OSName = 0;

    if (OSName == 1) OSName = "play.google.com";
    if (OSName == 0) OSName = "apps.apple.com";


</script>

<a href="https://www.google.com" onclick="location.href=this.href+OSName;return false;"> <p>Click<br> at me!!!</p> </a>

而且我的想法是每次有人点击它都会将他们重定向到另一个页面,我一直在搜索,似乎 onclik 和 target="_blank" 不能很好地协同工作。

如果有人知道如何解决问题或有想法,请随时发表评论。

谢谢大家。 :)

【问题讨论】:

  • 请理解Java和JavaScript是不一样的
  • @Stultuske,对不起,我不知道两者之间的区别,在这种情况下我使用的是什么?
  • 以上代码是Javascript。值得知道的是,"spoof" userAgent 字符串非常容易,因此这种方法永远不会 100% 可靠
  • 他只说因为标签,ok。我以为我的问题说错了。
  • 在这种情况下,有没有比 userAgent 更可靠的东西? @ProfessorAbronsius

标签: javascript html redirect href user-agent


【解决方案1】:

请试试这个。

<script>
  var OSName = "Unknown OS";

  if (navigator.userAgent.indexOf("Win") != -1) OSName = 1;
  if (navigator.userAgent.indexOf("Mac") != -1) OSName = 0;
  if (navigator.userAgent.indexOf("Linux") != -1) OSName = 1;
  if (navigator.userAgent.indexOf("Android") != -1) OSName = 1;
  if (navigator.userAgent.indexOf("like Mac") != -1) OSName = 0;

  if (OSName == 1) OSName = "page1";
  if (OSName == 0) OSName = "page2";

  function openPage() {
    window.open(window.location.href + '/' + OSName);
    return false;
  }
</script>

<a href="https://" onclick="openPage()"> <p>Click<br> at me!!!</p> </a>

【讨论】:

  • 嘿,谢谢你给我另一个选择,但是第一个,它工作正常。你只需要记住,如果你没有在 href 阵营中放任何东西,它会阻塞第一页。
  • 它必须是一个有效的链接,在 href 内。
【解决方案2】:

您可以创建另一个&lt;a&gt;标签并在JS中调用click()

    var OSName = "Unknown OS";
    if (navigator.userAgent.indexOf("Win") != -1) OSName = 1;
    if (navigator.userAgent.indexOf("Mac") != -1) OSName = 0;
    if (navigator.userAgent.indexOf("Linux") != -1) OSName = 1;
    if (navigator.userAgent.indexOf("Android") != -1) OSName = 1;
    if (navigator.userAgent.indexOf("like Mac") != -1) OSName = 0;
  
    if (OSName == 1) OSName = "play.google.com/store/apps/details?id=com.gecose.appseguros360.irgmediassegur";
    if (OSName == 0) OSName = "apps.apple.com/es/app/irg-mediassegur/id1509456102";
  
    function onClick() {
        let a = document.createElement('a')
        a.setAttribute('href', 'https://'+OSName)
        a.setAttribute('target', '_blank')
        a.click()
    }
</script>
<a onclick="onClick()" > <p>Click<br> at me!!!</p> </a>

【讨论】:

  • 如果您想避免原始页面被阻止,您只需要填写hrerf,在我的情况下,我在您单击此链接的位置放置了相同的链接。而且效果很好。
  • 它必须是一个有效的链接,在 href 内。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 2012-02-08
  • 1970-01-01
  • 2016-07-26
  • 2021-01-21
  • 2011-06-24
  • 1970-01-01
相关资源
最近更新 更多