0

我的情况是这样的:我能够在不同的 html 页面中从表单中编写文本。但我想做的是只使用该表单中的文本创建一个链接。最初我使用 javascript,尤其是 widget.preferences(一种保存表单中所做更改的方法)和“var”标签:

<script>

addEventListener
(
'DOMContentLoaded',
function()
{

// get the var elements with an id and set their textContent to the corresponding  widget.preferences
    var vars = document.querySelectorAll( 'var[id]' );
    for( var i=0,element=null; element=vars[i++]; )
    {
        element.textContent = widget.preferences[ element.id ];
    }


},
false
);

</script>
</head>
<body>

<h1>Popup window</h1>
<p>Here is a list of preferences and their associated value:</p>
<ul>
    <li><var id="foo"></var>
    <li><var id="bar"></var>
    <li><var id="baz"></var>
    <li><var id="check"></var>
    <li><var id="group1"></var>
    <li><var id="myMultipleSelect"></var>
</ul>

</body>

但是,正如我在开始时所说的,我的目标是使用其他页面上表单中的文本创建链接。表格如下:

<fieldset>
  <p>
    <input id="text1" name="foo" type="text"></input>
    <label for="text1">foo</label>
  </p>
  <p>
    <input id="text2" name="bar" type="text"></input>
    <label for="text2">bar</label>
  </p>
  <p>
    <input id="text3" name="baz" type="text"></input>
    <label for="text3">baz</label>
  </p>
</fieldset>
4

1 回答 1

0

我不确定您的问题到底是什么,但是对于使用 javascript 从其他页面检索信息,答案是 ajax。

这个答案有一个重要的警告:为此,您的页面和您尝试从中获取数据的表单页面需要位于同一域中。现代浏览器具有针对 XSS(跨站点脚本)的安全措施,因此您将无法获得该信息。

要获取表单的内容,请对带有该表单的页面发出 ajax 请求,然后将其 html 内容解析为 XML。然后,您可以浏览其 DOM 或使用 jQuery 之类的框架来提取链接所需的信息。

如果您是 ajax 新手,请尝试http://www.w3schools.com/ajax/default.asp上的 w3c 学校教程

如果您尝试访问的网页位于另一个域中,那么您可能不走运。有几种提出友好的跨站点请求的解决方案,例如微软的 XDR 对象,但是没有标准,所以要让它全面工作将是相当多的工作(如果可能的话) .

此外,对 XSS 的限制是在当前运行 js 的浏览器中进行的,因此如果您可以访问服务器端语言,您可以将来自某种处理程序的请求“穿梭”到您的页面中。

于 2012-08-24T22:03:26.567 回答