将unicode php变量传递给javascript

时间:2017-03-28 13:04:39

标签: javascript php json

我尝试将wordpress帖子标题和摘录(波斯语)传递给javascript。这是.php脚本文件中的代码:

function change(){
            document.getElementById("link").innerHTML = '<a href="$links[2]">$titles[2]</a>';
            document.getElementById("exer").innerHTML = '$excerpts[2]';
            document.getElementById("img").innerHTML = '$imgs[2]';
}

标题没有问题但是当我添加摘录时,它会在javasripts中出错。 浏览器中生成的javascript标记为:

        function change(){


            document.getElementById("link").innerHTML = '<a href="http://sirsaleh.com/2016/09/21/semi-private-idea/">یک ایده &#8211; حریم نیمه‌خصوصی</a>';
            document.getElementById("exer").innerHTML = '<p>چیزی که می‌خوام بگم با حریم نیمه‌خصوصی‌های تعریف شده در جاهای دیگه، اشتباه گرفته نشه. مطلبی که پیش روی شماست کاملا من‌درآوردی است.  ما همیشه می‌گیم یه چیز خصوصیه و یه چیز عمومیه. داشتم به این فکر می‌کردم، بد نیست با همه چیزای عمومی مثل هم‌رفتار نکنیم! به‌نظرم یه وقتایی به نظرم لازمه یه &hellip; <a href="http://sirsaleh.com/2016/09/21/semi-private-idea/" class="more-link">ادامه خواندن<span class="screen-reader-text"> &#8220;یک ایده &#8211; حریم نیمه‌خصوصی&#8221;</span></a></p>
';
                    document.getElementById("img").innerHTML = '';
    </script>

这是Chrome浏览器中显示的错误(它指的是我将$摘录传递给javascript的行):

Uncaught SyntaxError: Invalid or unexpected token

当我在json_encode中使用php为javascript转换varible时,错误消失了,但所有摘录变量都变为空字符串""

我尝试了一些regex解决方案来删除不需要的非unicode字符,但它也有同样的问题。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

OH!我在wordpress的the_excerpt()函数的输出中找到了一些东西。它在the_excerpt()输出中包含换行符。 所以感谢this answer,我使用了正则表达式:

$excerpts = preg_replace( "/\r|\n/", "", $excerpts );

问题解决了!