【问题标题】:jquery $.post function not working in safarijquery $.post 函数在 Safari 中不起作用
【发布时间】:2017-09-18 23:57:11
【问题描述】:

我有一个 javascript/jquery 函数作为链接调用,并添加了属性 = 符号。它在 Chrome 中完美运行,并且还将符号属性传递给函数中的警报消息 - 但在 Safari 中不执行。

调用函数的链接是这样的

<a onclick=\"addStock(event);\" Symbol=$symbol>Add</a>

javascript/jquery 看起来像这样

    function addStock(event) {
        var element = event.target;
        var symbol = element.getAttribute("symbol");

        if (confirm("Add Symbol to Watchlist " + symbol + "?")) {
            $.post("watchlistinsert.php?symbol="+ symbol +"&price=25&watchlistgroupid=1");
            document.location.reload();
            console.log("item " + symbol + " added");
        } else {

            console.log("user canceled");
        }
        return;
    }

您知道代码/Safari 有什么问题以及如何解决吗?

【问题讨论】:

  • 在您的 onclick 分配中转义双引号的反斜杠实际上是您代码的一部分吗?还是它们是复制/粘贴错误?
  • 就像这样 Add 它可以在 Chrome 中工作 - 现在也在 Safari 中 - 但是document.location.reload();不 - 如果我删除它,它会起作用......
  • 删除反斜杠。它们在那里无效。你需要这个:&lt;a onclick="addStock(event);" Symbol="$symbol"&gt;Add&lt;/a&gt;
  • 您是否使用PHP echo 语句输出锚元素?
  • 如果我删除 document.location.reload() 就可以了; - 然后我在 $.Post 之后添加了一个函数来进行更新 - 谢谢大家,只要 document.location.reload(); 它在所有浏览器中都可以正常工作不包括在内...

标签: javascript jquery


【解决方案1】:

我猜第一个错误可能来自自定义属性:

尝试将属性更改为这个:Symbol='$symbol' 其次,您是否尝试过添加假的 href 属性,例如 href="#"

调试js代码呢?您在 safari 中遇到任何错误吗?

我认为不同的浏览器在使用documentwindow 时的行为会有所不同,所以我建议使用以下选项,看看它们是否有效:

  1. window.location.reload(true);
  2. location.reload(true);
  3. window.location.reload()

如果它们都不起作用,请尝试使用此功能here

【讨论】:

  • 谢谢 - 如果我删除 document.location.reload();部分代码 - 对此有何想法?
  • @PeterKroul 查看编辑答案:) 我认为它也可以解决 safari 的问题
  • 很抱歉,两者都不起作用 - 我要提出一个新问题。
猜你喜欢
  • 2012-07-06
  • 2014-10-06
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多