Javascript代码片段在Safari 11&;中不起作用;12

Javascript代码片段在Safari 11&;中不起作用;12,javascript,safari,safari-11,Javascript,Safari,Safari 11,有人知道为什么下面的javascript代码段在Chrome和Firefox中都能工作,但在Safari 11和12版本中却不能工作吗 它所做的唯一一件事就是获取url参数code中的值,并将其插入我希望它位于的页面上的url中 在新的Safari版本中是否有关于javascript的限制? 我在网上找不到任何信息 <script> window.addEventListener("DOMContentLoaded", function() { if (window.loc

有人知道为什么下面的javascript代码段在Chrome和Firefox中都能工作,但在Safari 11和12版本中却不能工作吗

它所做的唯一一件事就是获取url参数code中的值,并将其插入我希望它位于的页面上的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>       

addEventListener(“DOMContentLoaded”,function()){
if(window.location.href.indexOf('?code')>-1){
var uniqueCode=window.location.search.split(/\?|和/g).filter(函数(str){
返回str.toLowerCase().indexOf('code')>-1
})[0]。替换('code=','');
var codeLinks=document.querySelectorAll('[href*=“/validate/promocode/”);
对于(var i=0;i

我没有Mac来测试这一点,但是否有可能在Mac上的版本11和版本12上默认禁用Javascript?

已解决

问题在于以下几行:

var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"');
应该是

var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"]');
一个其他4个浏览器没有抱怨的小语法错误。
结论:Safari对语法错误的要求更严格。

已解决

问题在于以下几行:

var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"');
应该是

var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"]');
一个其他4个浏览器没有抱怨的小语法错误。
结论:Safari对语法错误的要求更严格。

是否有任何工作示例可以看到问题的实际作用?不完全是,它现在在我们的测试系统上。我想知道是否有人知道某些QuerySelector或EventListener在这些版本中不再工作了?我在Mac上,但没有php环境设置现在,你能分享一下
url
在你期望它工作时的样子吗?它在Firefox、IE、Edge和Chrome上都能工作。你的代码看起来不错。尝试
console.log()
if
语句之前的一些内容,用于检查safari上是否禁用了
JS
。是否有任何工作示例可以看到问题实际发生了?不完全是,它现在在我们的测试系统上。我想知道是否有人知道某些QuerySelector或EventListener在这些版本中不再工作了?我在Mac,但是现在还没有php环境设置,你能分享一下当你期望它工作时,
url
是什么样子吗?它在Firefox、IE、Edge和Chrome上都能工作。你的代码看起来不错。尝试
console.log()
if语句之前的内容,用于检查safari上是否禁用了
JS
。其他人不会对此抱怨……一个有趣的输入错误,很好。他们接受
[n
作为querySelector的参数,而不是作为CSS选择器…更奇怪和weirder@Kaiido,apple…:)不,其他人在这里有奇怪的行为。Safari至少是一致的:DOM选择器API使用CSS语法,
[attr
对CSS无效,对DOM选择器也是如此。我试图摆脱这一切,但规范很难遵循。我有点理解
[attr
不适用,但不知何故,我不明白为什么他们不接受它作为CSS规则的一部分……我明白你的意思,但在Windows机器上工作是相当烦人的,总是在IE、Edge、Firefox和Chrome中启动代码来重复检查我的代码,他们甚至没有给出警告,然后我的机器上唯一无法运行的浏览器说不.:)通过使用第三方测试实验室(如saucelabs)找到了解决方案,顺便说一句,对有相同问题的人来说可能很有趣。奇怪的是,其他人不会抱怨这个问题……一个有趣的打字错误,很好。他们接受
[n
作为querySelector的参数,而不是作为CSS选择器…更奇怪和weirder@Kaiido,apple…:)不,其他人在这里有奇怪的行为。Safari至少是一致的:DOM选择器API使用CSS语法,
[attr
对CSS无效,对DOM选择器也是如此。我试图摆脱这一切,但规范很难遵循。我有点理解
[attr
不适用,但不知何故,我不明白为什么他们不接受它作为CSS规则的一部分……我明白你的意思,但在Windows机器上工作是相当烦人的,总是在IE、Edge、Firefox和Chrome中启动代码来重复检查我的代码,他们甚至没有给出警告,然后我的机器上唯一无法运行的浏览器说不.:)通过使用第三方测试实验室(如saucelabs)找到了解决方案,顺便说一句,对有相同问题的人来说可能很有趣。