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!

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

报告相同问题?

悬赏问题

  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥60 关机时蓝屏并显示KMODE_EXCEPTION_NOT_HANDLED,怎么修?
  • ¥66 如何制作支付宝扫码跳转到发红包界面