-3

我正在编写一个用于阅读通知/消息的网页,这需要我将通知作为数据库的输入。我正在使用 php 获取输入并使用 echo 将其传递给 javascript 函数。

现在的问题是,如果通知非常大(> 1000 个字符或其他内容),则该功能将停止工作。有没有办法在 javascript 变量中存储大字符串?

提前谢谢你。

javascript函数是这样的:

function display(subject, notice, from,to)
{
    alert(notice);
    document.getElementById('reader_default').innerHTML='';
    document.getElementById('subject').innerHTML="SUBJECT : "+subject;
    document.getElementById('from').innerHTML="From: "+from;
    document.getElementById('to').innerHTML="To: "+to;
    document.getElementById('noticedisp').innerHTML=""+notice;
}

php 变量 pass 如下所示:

echo '<a href="javascript:void(0)" onclick="display(\''.ucfirst($subject).'\',\''.$notice.'\',\''.ucfirst($hostel).' Hostel'.'\',\''.$toid.'\')" style="padding:2%; text-decoration:none; color:#0033CC;">'.ucfirst($subject).'</a>'.'<br /><span style="padding:2%;"><i>From: </i>'.ucfirst($hostel).'Hostel</span><br/>'.'<br/><br/>';

首先,我提供了以下字符串:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Ut molestie luctus lectus,nec volutpat ipsum porta sat amet。Phasellus ut egestas sapien。Curabitur mauris erat, eleifend quis adipiscing sollicitudin, posuere tempor ante。Lorem ipsum dolor sit amet, consectetur adipiscing elit。完全没有问题。Maecenas malesuada lacus pulvinar risus placerat convallis。在 elit aliquam mollis a eu nisi 中的 Cras vitae urna。Nulla id molestie ante。Aenean faucibus interdum nibh,在 tristique dui viverra eu。Nulla facilisi。placerat augue 处的整数。

Sed quis risus dolor,在 tristique est. Maecenas non tellus vel quam blandit elementum。Sed 前庭痛非 mi eleifend luctus。Proin interdum mollis congue。Fusce quis consequat augue。Integer dictum lectus a ligula egestas in volutpat odio tincidunt。Sed placerat dictum velit quis dapibus。

Cras non quam ut neque auctor hendrerit。Phasellus tincidunt dapibus metus, id rutrum purus fringilla vel。Pellentesque ac sapien elit。Maecenas nibh justo, lobortis id volutpat a, bibendum egestas enim。Vivamus 坐在 amet justo vel tortor ullamcorper molestie ac sed nibh。Donec adipiscing dui sed odio hendrerit quis aliquet turpis posuere。Donec pharetra mi ut odio luctus sodales。Donec elit nisi, cursus elementum cursus at, scelerisque quis ante。Nunc vel ipsum ut nibh dictum tempus ut ut tortor。Donec dignissim pharetra scelerisque。Curabitur pellentesque urna a velit ultricies 在 lacinia leo euismod。Nulla id dolor ut odio ultrices accumsan in id erat。Aliquam lorem turpis, tristique nec tincidunt id, lacinia sat amet ante。

当尝试一切后这不起作用时,我将字符串缩短为:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Ut molestie luctus lectus,nec volutpat ipsum porta sat amet。Phasellus ut egestas sapien。Curabitur mauris erat, eleifend quis adipiscing sollicitudin, posuere tempor ante。Lorem ipsum dolor sit amet, consectetur adipiscing elit。完全没有问题。Maecenas malesuada lacus pulvinar risus placerat convallis。在 elit aliquam mollis a eu nisi 中的 Cras vitae urna。Nulla id molestie ante。Aenean faucibus interdum nibh,在 tristique dui viverra eu。Nulla facilisi。placerat augue 处的整数。

这有效!

4

2 回答 2

1

如果 javascript 像字符串一样解析它,它将在换行符处中断。而不是 [ENTER] 你应该尝试使用 \n\[ENTER]..

于 2013-04-04T23:48:20.510 回答
0

您的数据中可能包含单引号或双引号。我会将您回显的内容包装起来htmlspecialchars,这样这些和任何其他有问题的 HTML 字符都不会破坏您的输出。

echo htmlspecialchars('<a href="javascript:void(0)" onclick="display(\''.ucfirst($subject).'\',\''.$notice.'\',\''.ucfirst($hostel).' Hostel'.'\',\''.$toid.'\')" style="padding:2%; text-decoration:none; color:#0033CC;">'.ucfirst($subject).'</a>'.'<br /><span style="padding:2%;"><i>From: </i>'.ucfirst($hostel).'Hostel</span><br/>'.'<br/><br/>');

http://php.net/manual/en/function.htmlspecialchars.php

于 2013-04-04T22:58:17.050 回答