【问题标题】:Dynamic Javascript File newline & carriage return动态 Javascript 文件换行符和回车符
【发布时间】:2009-05-06 11:42:26
【问题描述】:

我正在用php动态构建一个JS页面,使用.htaccss将.php变成.js

除了 JS 的输出之外,一切都很好。

IE

$data = array('one', 'two');

foreach($data as $d){
    echo "document.write('This is a test for array item ".$d."'); \r\n";
}

问题是它全部输出在一行上,即

document.write('This is a test for array one');document.write('This is a test for array two');

无论我尝试了什么,我都无法超过 2 行。

有什么想法吗?

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    编辑:看起来我误解了这个问题 - 他在他的 JS 中遇到换行问题,而不是他的最终 HTML。


    由于字符串末尾的“\r\n”,您的 JavaScript 出现在单独的行中,但随后您将纯文本输出到 HTML 文档中。 HTML 不会换行,除非您在预先格式化的块中(例如“

    ”)或者您给它一个明确的换行符(例如“
    ”)。

    您可能希望您的代码如下所示:

    foreach($data as $d){
      echo "document.write('This is a test for array item ".$d."<br>'); \r\n";
    }
    

    请务必小心您的数据 - 将随机字符串插入 HTML 是一种快速获取安全漏洞的方法。

    【讨论】:

    • 失败了,伙计……当人们以如此确信的方式兜售虚假信息时,我感到很烦。 : /
    • 我实际上并不担心内部内容新行,因为那将是你所说的 html。它让 document.write 换行。
    • 看来我误解了这个问题。我运行了您发布的确切代码,并且 document.writes 出现在不同的行中。您确定您的 Web 服务器上没有某种 JavaScript 压缩层吗?您确定您的网络浏览器没有为您修改代码吗?尝试使用 wget 或其他命令行实用程序下载 JS。
    • 仅作记录,是浏览器的问题吗?
    【解决方案2】:

    呵呵,其实我想如果你查看生成文件的源代码你会发现确实有换行符。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 2020-09-09
      • 2017-06-28
      相关资源
      最近更新 更多