gpt4 book ai didi

javascript - 转义字符生成 "missing ) after argument list"错误?

转载 作者:行者123 更新时间:2023-11-30 10:49:43 24 4
gpt4 key购买 nike

这里的这一行代码来自购物车:

<a href="javascript:;" onclick="simpleCart.add( 'name=The Devil&#039;s Sneakers', 'price=10', 'shipping=0', 'quantity=1' );">Add To Cart</a>

Firebug 的控制台显示:“参数列表后缺少 )”。显然 ')' 没有丢失!但我怀疑它与转义字符有关

&#039;

因为在 name= 参数中没有撇号的其他类似格式的链接工作正常。

想法?

最佳答案

onclick="simpleCart.add( 'name=The Devil&#039;s Sneakers'...

是在 HTML 级别转义撇号的 HTML 属性。这与说完全一样:

onclick="simpleCart.add( 'name=The Devil's Sneakers'...

字符串过早关闭是一个明显的问题。 HTML 转义对您没有帮助,因为 HTML 转义只需要对 HTML 特有的字符进行编码。这将包括双引号字符但不包括单引号,因为您已使用双引号来分隔属性值。

这里的撇号不是 HTML 特有的,而是 JavaScript 特有的。您需要使用 JavaScript 字符串文字转义,在这种转义中您需要反斜杠:

onclick="simpleCart.add( 'name=The Devil\'s Sneakers'...

无论哪种方式,很明显,在其他转义中转义确实令人困惑,这是不使用内联事件处理程序属性的另一个很好的理由。相反,在纯 JavaScript 中:

<button type="button" id="foo">Add to cart</button>
<script type="text/javascript">
document.getElementById('foo').onclick = function() {
simpleCart.add("name=The Devil's Sneakers", 'price=10', 'shipping=0', 'quantity=1');
};
</script>

(我使用了一个按钮,因为你得到的不是一个可以去任何地方的链接。如果你愿意,你可以将它的样式设置为看起来像一个链接而不是一个按钮,但如果没有链接最好不要链接的正常可供性,如中键单击或右键单击书签是有意义的。)

关于javascript - 转义字符生成 "missing ) after argument list"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6219088/

24 4 0
文章推荐: Javascript:将