今天遇到一个这样的需求:
<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语法,函数的参数是字符串型,需用引号引起。
同学们是怎么写的啊?
最佳答案