douju4594 2017-03-28 13:04 采纳率: 100%
浏览 112
已采纳

将unicode php变量传递给javascript

I trying to pass wordpress posts title and excerpts (which are persian) to javascript. here is code in .php script file:

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]';
}

There is no problem with titles but when I add excerpts, it makes error in javasripts. The generated javascript tag in browser is:

        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>

here is the error shown in chrome-browser (it refers to line I passed $excerpts to javascript):

Uncaught SyntaxError: Invalid or unexpected token

When I use json_encode in php to convert varible for javascript, the errors vanishes, But all of the excerpts variable become empty string "".

I tried some regex solutions to deleted unwanted non-unicode characters but it has same problem also.

Any help will be appreciated.

  • 写回答

1条回答 默认 最新

  • dqn8235 2017-03-28 16:46
    关注

    OH! I find out something in the output of the_excerpt() function of wordpress. It contains a newline character in the the_excerpt() output. so thanks to this answer, I used regex like this:

    $excerpts = preg_replace( "/|
    /", "", $excerpts );
    

    and problem solved!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能