【发布时间】:2018-05-18 00:56:20
【问题描述】:
对于一些 wordpress 网站,我正在创建一个 cookiewall。所以在插件文件中我创建了一个这样的短代码:
function agreebutton($atts, $content = null) {
extract(shortcode_atts(array($atts),$content));
return '<button type="submit" onClick="SetCookie('clickagree','yes')">';
do_shortcode($content) . '</button>';
add_shortcode('button', 'agreebutton');
在一个自定义模板中我设置了一个 SetCookie 函数,所以如果点击按钮,cookie 将被放置:
<script>
function SetCookie(cookieName,cookieValue) {
var today = new Date();
var expire = new Date();
var nDays=365
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)+";expires="+expire.toGMTString(); }</script>
现在的问题是,当我尝试返回 onClick="SetCookie ('clickagree', 'yes') 时,我收到一个意外的语法错误 'clickagree' (T_STRING)。 转义并不能解决问题,要使简码起作用,您需要返回而不是回显。
有什么想法吗?
【问题讨论】:
-
您发布的示例 PHP 代码不完整,我猜您的示例太短了...但是看看您的代码在这里是如何呈现的,您使用的引号显然有错误。查看此问答以获得解决方案:Escaping quotation marks in PHP
-
你是对的,在更改报价后它确实有效。谢谢!
标签: javascript wordpress shortcode