Javascript / Jquery不会更改Safari中的URL参数,但会在Chrome中更改

时间:2017-11-14 09:07:47

标签: javascript jquery html google-chrome safari

我有这个JQuery / JS脚本,根据select元素中的哪个选项更改URL的$ _GET参数。它在Chrome中运行良好,但它不会更改$ _GET参数或在Safari 6.1.6中刷新。

 $("#promjena").change(function () {
    var v = $("#promjena").val();
    var href = window.location.href;

    if (v === "1") {
        if (href.includes("?akcija=kontrola")) {
            window.location.href = href.replace("?akcija=kontrola", "?akcija=default");
        } else if (href.includes("?akcija=signal")) {
            window.location.href = href.replace("?akcija=signal", "?akcija=default");
        } else {
            window.location.href = window.location.href + "?akcija=default";
        }
    }
    if (v === "2") {
        if (href.includes("?akcija=default")) {
            window.location.href = href.replace("?akcija=default", "?akcija=kontrola");
        } else if (href.includes("?akcija=signal")) {
            window.location.href = href.replace("?akcija=signal", "?akcija=kontrola");
        } else {
            window.location.href = window.location.href + "?akcija=kontrola";
        }
    }
    if (v === "3") {
        if (href.includes("?akcija=default")) {
            window.location.href = href.replace("?akcija=default", "?akcija=signal");
        } else if (href.includes("?akcija=kontrola")) {
            window.location.href = href.replace("?akcija=kontrola", "?akcija=signal");
        } else {
            window.location.href = window.location.href + "?akcija=signal";
        }
    }

});

2 个答案:

答案 0 :(得分:1)

有一种可能性是val()正在返回一个数字,并且您希望if(v === "1")中有一个字符串,如果这是您可以执行的问题:

 var v = $('#promjena').val() + ''; //to convert to string if not

另一个机会是support for includes in Safari < 9

如果是这种情况,您可以使用上面提到的includes填充,或者重写您的代码,如:

if(href.indexOf("?akcija=default") !== -1)

或使用this answer

中的任何其他替代方法

答案 1 :(得分:0)

尝试以下

     var v = $("#promjena").attr("value");

OR

     var v = parseInt($("#promjena").attr("value")).toString();

OR

    var v = parseInt($("#promjena").val()).toString();