0

如何制作一个小书签,将内容放入字段并提交表单?

我认为沿着这些思路:

1)var p = document.open(http://site.com/form.htm)

2) var h = p.innerHTML

3) var f = h.getElementById('formfield')

现在如何让当前页面的 URL 成为“formfield”的值?

4

3 回答 3

1

如果您希望将当前页面的 URL 放入表单域,可以这样做:

f.value = window.location;
于 2012-08-31T07:02:50.163 回答
1
var p = document.open(http://site.com/form.htm)

这行不通。你可能会想到 window.open。如果您使用 window.open,则只有在小书签从同一域运行时,它才会对您的目的有用。如果从任何其他域运行,它将打开窗口,但您将无法对新打开的窗口中的文档执行任何其他操作。

var h = p.innerHTML

这对您的情况没有任何帮助。它只返回一个文本字符串。

var f = h.getElementById('formfield')

这是不正确的,因为它使用“h”,这是不正确的。你可能想要的是这个...

var w = window.open('http://site.com/form.htm');
// need code that will check if window is done loading before you use next line!
w.document.getElementById('formfield').value = window.location;

如果您将页面上的小书签与表单一起使用,则只需要以下内容:

document.getElementById('formfield').value = window.location;

如果您想打开另一个域的窗口,请输入表单值,然后提交表单 - 使用小书签无法做到这一点。小书签面临与页面中任何其他 javascript 相同的限制。这是为了安全,以防止互联网上的任何网页试图控制您的浏览器并像您一样在其他网站上做事。在这种情况下,您唯一合理的选择是创建/使用浏览器插件/扩展。

于 2012-08-31T07:18:19.050 回答
0

如果我理解正确,您想使用书签将当前 URL 和其他一些数据提交到您的服务器。

我会这样做:

  1. 使用 JavaScript 将表单附加到当前 DOM。该表单应在书签中进行硬编码。
  2. 填写表格,您现在在访客页面上,同一个域。
  3. 提交表单,可能使用 target="_blank" 作为结果。

由于跨域限制,您不能使用 Ajax 代替表单来提交数据。

于 2012-08-31T07:51:37.927 回答