[英]Javascript Snippet not working in Safari 11 & 12
有谁知道为什么以下javascript代码段在Chrome和Firefox中都可以运行但在Safari 11和12版本中却不运行的原因?
唯一要做的就是将url参数代码中的值插入到需要我希望它包含在页面中的url中。
在新的Safari版本中,有关javascript的限制吗? 我在网上找不到任何信息。
<script>
window.addEventListener("DOMContentLoaded", function() {
if (window.location.href.indexOf('?code') > -1) {
var uniqueCode = window.location.search.split(/\?|&/g).filter(function(str){
return str.toLowerCase().indexOf('code') > -1
})[0].replace('code=','');
var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"');
for (var i = 0; i < codeLinks.length; i++) {
var currentHref = codeLinks[i].href;
var newHref = currentHref.replace(/\/validate\/promocode\/.*\/buy\//, "/validate/promocode/" + uniqueCode + "/buy/");
codeLinks[i].href = newHref;
}
}
}, false);
</script>
我没有Mac可以对此进行测试,但是是否有可能在Mac的版本11和12上默认禁用了Javascript?
解决了
问题在于以下几行:
var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"');
应该
var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"]');
其他4个浏览器没有抱怨的小语法错误。 结论:Safari对Syntaxerrors更加严格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.