我目前正在开发Safari扩展程序,根据网站提供的信息创建可打印的表单。自定义CSS样式表并不理想,相反我希望可以执行以下操作...
如果我在名为 name.html
的页面上有以下DIV<div id="name">John</div>
有没有办法获取#name的内容并将其传递到另一个名为 form.html 的页面的文本字段中?理想情况下,避免服务器端脚本?
答案 0 :(得分:1)
检索元素的文本(如 ALL 中包含的文本,子节点):
var value = document.getElementById('name').textContent;
然后将文本分配到另一页的输入字段:
document.getElementById('myField').value = value;
当然,这不适用于各页。如果您不想为此使用服务器端代码,一种简单的方法是将代码传递给查询字符串,重定向到表单页面,并从查询参数中检索变量。这听起来比实际更简单,因为你需要一个函数add a query parameter,另一个函数需要read a query parameter,并确保一切都是encoded and decoded properly。
另一个 - 不好 - 替代方案可能是use cookies via JavaScript。
另一种 - 更好但尚未普及 - 替代方案可以使用WebStorage API。 (请参阅localStorage和/或sessionStorage)。这将需要支持这些API的现代浏览器(例如,谷歌浏览器,IE9,Firefox 4等)
嵌入式链接将提供缺少的部分。