【问题标题】:Passing newline on a javascript page isn't working在 javascript 页面上传递换行符不起作用
【发布时间】:2016-02-23 11:25:07
【问题描述】:

我想要做的是通过 URL/GET 表单传递一个包含一个或多个换行符的复杂文本。另一方面,我传递的参数由 javascript 解释(有点),并且可能从任何换行符或其他转义字符中清除,因此它根本不起作用,除了我可以重现但不完全理解的 1 个 CASE .

  • 如果我在 URL %0D%0A 上传递(通过 PHP 标头函数),页面上的结果是这些字符被过滤并且根本不会出现在 textarea 中。
  • 但是,如果我在地址栏上手动使用这些字符写入相同的 URL,则会出现换行符。

我也尝试过使用表单/GET,但 url 已编码,我无法通过 %0D%0A。

感谢您在此问题上提供的任何帮助。

代码类似于:

源页面(使用 PHP):

... various code preparation ...
header("Location: DESTINATION?a=bbbbbb%0D%0Acccc"); 

目标页面(html+javascript):

... some javascript function that takes the a parameter from the query string and it's cleaning and putting dinamically into the textarea ...
<textarea>bbbbbbcccc</textarea>

我无法访问 DESTINATION PAGE(我不拥有的外部 Web 应用程序,我需要将一些文本传递给该应用程序,新闻行工作正常

【问题讨论】:

  • 有一些代码供我们查看吗?
  • 你想做什么??我的意思是在宏伟的计划中
  • 源页面(使用 PHP): header("Location: DESTINATION?/a=bbbbbb%0D%0Acccc"); DESTINATION PAGE (html+javascript): ---> textarea 的内容通过我无法访问的 javascript 函数,可能正在过滤换行符

标签: javascript php header textarea newline


【解决方案1】:

也许您必须通过 br 元素更改新行?

在 JavaScript 中:

var str = "My string \n with lines";
str = str.replace(/\n/g, '<br />');

如果你在 PHP 中需要它:

$str = "My string \n with lines";
$str = str_replace("\n", "<br />", $str);

【讨论】:

  • 我无法访问 DESTINATION 页面(不在我的域上,它是一个外部 Web 应用程序,我需要在其中传递一些带有换行符的文本。我尝试过使用 iFrames 但我可以' t 由于 XSS 保护
  • header("Location: DESTINATION?/a=bbbbbb%3Cbr+%2F%3Ecccc") 有效吗?
  • 为什么是 '?/a=value' 而不是 '?a=value'
  • 在我看到的文本区域
    但不是换行符。当在浏览器的地址栏上手动写入时,它似乎仅适用于 %0A%0D 但现在使用标头调用传递时
  • 重定向到新位置后,您在浏览器地址栏中看到什么?没有%0A%0D?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多