将文本插入<textarea> </textarea>

时间:2012-07-20 20:47:23

标签: javascript ajax jquery

当我点击其他html页面中的链接时,我正试图在html文件中将文件中的一些文本插入<textarea></textarea>

html1.html:

<a href="#" id="link">click to add text</a>

html2.html:

<form action="...">
   <textarea id="txt"></textarea>
</form> 

JS:

$(".link").click(function(){
   window.location = "./html2.html";
   var text = $("#some_id").text();
   $("#txt").val(text)
});

3 个答案:

答案 0 :(得分:5)

迁移到新页面后,任何进一步的JS执行都将丢失。您必须执行以下操作,将文本传递到查询字符串变量中的新页面:

$(".link").click(function(){
   var encodedText = encodeURIComponent($("#some_id").text());
   window.location = "./html2.html?txt=" + encodedText;
});

html2.html页面上添加如下代码:

var capturedText = window.location.search.match(/(\?|&)txt=(.*?)(&|$)/);
capturedText = capturedText ? decodeURIComponent(capturedText[2]) : '';
$("#txt").val(capturedText);

答案 1 :(得分:0)

如果some_id位于html2.html,则很容易:让html2.html中的JavaScript填写文字

$("#txt").val($("#some_id").text());

如果some_id位于html1.html,您应该将值发送到服务器并填写服务器端的textarea。如果这不必要地复杂或不可行,您可以通过多种不同的方式传递文本,最常见的是:

    网址html2.html?text="my text" 中的
  • 在cookie中(大多数情况下不推荐)

如果您是通过网址进行的,只需从html2.html上的JavaScript中的网址中提取文字。

答案 2 :(得分:0)

运行“window.location”后,新页面将开始加载,脚本将停止执行。

此外,您无法修改未来页面上的元素。

您的最佳镜头是加载html2.html#someTextHere,并在html2.html上将散列中的文本复制到textarea中。