例如:
function change()
{
document.getElementById('identification').href = "http://www.stackoverflow.com";
}
关联的HTML(重要位)
<a href="#" id="identification">Stack Overflow</a>
<input type=button value="Change" onclick="change()" />
这会将我的代码中的href更改为http://www.stackoverflow.com,但是我想从其他HTML文件中执行此操作? JavaScript将位于另一个文件的标记中,但会编辑第一个文件的内容。这可能吗?如果是这样,怎么样?
答案 0 :(得分:5)
Javascript仅存在于特定页面的生命周期中,因此您无法将一个文件中的代码修改为另一个尚未卸载的文件。
根据您的用户体验,有一些选择:
?show=true
的网址后面的那些东西。当你加载第二页时,通过附加{来请求该页面{1}}(或任何你编写的)到URL的末尾。当第二个页面加载时,它可以检查它的URL上的查询参数并决定如何修改自己。这是从中传递临时参数的最简单方法一页到下一页。注意:当两个页面不具有相同的来源(例如,同一个域)时,浏览器会尝试阻止页面修改。请参阅same origin policy的说明。因此,如果您的问题与不同域上的页面有关,那么您需要找到一种不同的方法来解决您的问题。附加组件之类的东西有时可以绕过同源策略,但是由于众多安全原因,常规页面javascript无法实现。
答案 1 :(得分:1)
因为我找不到一个我认为匹配的问题足以作为完全重复关闭,我会发布一个答案:
是否可以在一个文档中使用JavaScript来更改另一个文档中的HTML?
是的,假设两个窗口都在同一个安全沙箱中。
若然,怎么样?
这很简单,你需要从你想要访问的window
的上下文中调用DOM函数。
获取新窗口对象的一种简单方法是调用window.open
var newWin = window.open(newpage)
newWin是一个window
对象,因此它有一个document
对象以及它可能已加载的所有其他DOM元素。就像任何其他窗口一样,如果您尝试与页面上加载的元素进行交互,则需要等待document.ready
或window.onload
。
newWin.onload = function(){
var ident = newWin.document.getElementById('identification');
ident.href = 'http://stackoverflow.com';
};