U方法在模版里生成URL的单双引号问题。

浏览:1767 发布日期:2014/01/24 分类:求助交流

今天遇到一个这样的需求:<volist name="dates" id="date"> 
    <li class="{:is_menunow($date)}" onclick="go('')">{$date}</li>
</volist>
JS函数go(), 是前端MM写的一个用于非A标签的点击跳转函数,参数就是一个url。

若是直接在模版里写:
<{:U("Data/index", "thedate=$date")}>
是没有问题的,输出URL。

写法一:onclick="go('<{:U('Data/index', 'thedate=$date')}>')"符合HTML语法,最外层双引号,里面用单引号
但不符合PHP语法,PHP单引号不支持变量解析,混编的时候自然就出错了

写法二:onclick="go('<{:U('Data/index', "thedate=$date")}>')"不符合HTML语法(双引号嵌套);
但符合PHP语法,混编后,一切正常,生成的URL是没问题的也能正常跳转,但受HTML语法错误的影响,界面会出问题。

写法三:onclick='go('<{:U('Data/index', "thedate=$date")}>')'这肯定是不符合HTML写法

写法四:onclick='go(<{:U("Data/index", "thedate=$date")}>)'符合HTML和PHP写法,解析正常。
但不符合JS语法,函数的参数是字符串型,需用引号引起。

同学们是怎么写的啊?
最佳答案
评论( 相关
后面还有条评论,点击查看>>