首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将长值传递给javascript函数

如何将长值传递给javascript函数
EN

Stack Overflow用户
提问于 2010-10-21 06:17:41
回答 4查看 2.5K关注 0票数 0

我有javascript函数:

代码语言:javascript
复制
function someAction(thisTd,text){
  alert(text);
  thisTd.innerHTML=text;
  ...
}

和html-file:

代码语言:javascript
复制
<td onclick="someAction(this,<?echo 'Long-long text with <b>html-formatting</b>'?>)"/>

当我使用这样的代码函数时,someAction不会调用(因为警报不会显示),并且在Opera中的错误控制台中也不会显示错误。如何解决这个问题?

我不使用框架(JQuery等)。

更新#1

当我使用这些代码时:

代码语言:javascript
复制
<?$encoded=str_replace("\n","",str_replace("\r\n","",$text));echo $encoded?>

效果很好。但我不确定它在Linux中是否正确。(我使用Windows)

EN

回答 4

Stack Overflow用户

发布于 2010-10-21 06:20:28

确保您的HTML编码,并在参数周围放置单引号:

代码语言:javascript
复制
<td onclick="someAction(this, '<?echo htmlspecialchars('Long-long text with <b>html-formatting</b>', ENT_QUOTES) ?>')"/>
票数 2
EN

Stack Overflow用户

发布于 2010-10-21 06:28:41

你应该移除回波标签和?

代码语言:javascript
复制
 <div onclick="someAction(this,'Long-long text with <b>html-formatting</b>')">myDiv</div>

你的职责是:

代码语言:javascript
复制
function someAction(thisTd,text){
    thisTd.nodeValue=innerHTML
    ...
}
票数 2
EN

Stack Overflow用户

发布于 2010-10-21 06:41:02

首先,必须将字符串包装为单引号或html编码双引号:

代码语言:javascript
复制
<td onclick="someAction(this, '<?php echo 'yada yada'; ?>');"/>
<!-- OR -->
<td onclick="someAction(this, &quot;<?php echo 'yada yada'; ?>&quot;);"/>

其次,"echo"ed输出可以包含单引号或双引号,可以中断javascript字符串或html属性。假设您使用单引号包装回显字符串:

代码语言:javascript
复制
<td onclick="someAction(this, '<?php echo htmlspecialchars( str_replace( "'", "\\'", $that_long_text ) ); ?>');"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3984778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档