这是我面临的问题。
echo "<script type='text/javascript'>window.insertCartInHeader({$cart});</script>";
$ cart变量持有HTML代码块。
我得到Uncaught SyntaxError: Unexpected token <
解?
window.insertCartInHeader = function(cart){
console.log(cart)
var list = $("#top-links").append('<ul id="cart-header"></ul>').find('#cart-header');
list.append('<li>'+cart+'</li>');
}
这是我传递的字符串
'<div id="cart">
<button type="button" data-toggle="dropdown" data-loading-text="Loading..." class="heading dropdown-toggle">
<div class="pull-left flip"><h4></h4></div><span id="cart-total">0 item(s) - £0.00</span></button>
<ul class="dropdown-menu">
<li>
<p class="text-center">Your shopping cart is empty!</p>
</li>
</ul>
</div>
' (length=402)
答案 0 :(得分:3)
你需要添加引号(“),让javascript知道它是一个字符串,你应该使用addslashes
,因为你可能在那个html中有类或属性。
echo "<script type='text/javascript'>window.insertCartInHeader(\"". addslashes($cart) . "\");</script>";
如果没有这样的addlashes,将无效:
$html = '<h1 class="hi">It works</h1>';
对于多行html,这应该有效。
str_replace("\n", "\\", addslashes($cart));
你可以改进替换,但你明白了。