JavaScript代码有条件地更改链接URL

时间:2019-06-15 00:40:17

标签: javascript

我知道这已作为单独的问题广泛讨论;我尝试过复制已验证的答案,但是在对Javascript条件语句和链接URL更改进行同步时遇到了麻烦。

本质上,我需要做的是检测移动用户并将电话会议URL更改为电话链接。我一直在使用if (screen.width <=699) {作为条件,它适用于重定向。这是我尝试过的:

<script type="text/javascript">
<!--
var call=document.getElementByID('phone');
if (screen.width <= 699) {
call.write('<a href="tel:!PHONENUMBER!">');
else
call.write('<a href="!URL!" target="blank">);
} 
//--!>
</script>
</head><body>
...
<a href="!URL!" id="phone">...</a>

我也尝试了用相应的else语句来尝试这些方法:

  • 没有var和document.getElementByID('phone').write

  • onclick = function() { window.location.href ='tel:!PHONENUMBER!};

  • call.src.replace('tel:!PHONENUMBER!');

  • call.setAttribute("href",'tel:!PHONENUMBER!');

如果这是一个非常基本的问题,我深表歉意-我仍在学习Javascript。预先谢谢你。

2 个答案:

答案 0 :(得分:0)

在执行JavaScript之前,您需要等待页面完成加载,或者将script块移至HTML的底部。

如果要等待页面完成加载,则将代码包装在以下内容中:

window.onload = function () {
  // your code goes here
}

答案 1 :(得分:0)

在@sepbot的帮助下找到了答案。

<body onload="mobileURL()">

<div id="phone"></div>


<script type="text/javascript">
function mobileURL() {
    var a = document.createElement("a");
    a.innerHTML="!LINKTEXT!";
    var myPhone = document.getElementById('phone');
    if (screen.width <= 699) {
        a.setAttribute('href', '!TELEPHONE!');
        myPhone.appendChild(a);
    } else {
        a.setAttribute('href', '!URL!');
        myPhone.appendChild(a);
    }
}
</script>