[英]Is it possible to use JavaScript in one document to change HTML in another?
例如:
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将位于另一个文件的标记中,但会编辑第一个文件的内容。 这可能吗? 如果是这样,怎么样?
Javascript仅存在于特定页面的生命周期中,因此您无法将一个文件中的代码修改为另一个尚未卸载的文件。
根据您的用户体验,有一些选择:
?show=true
。当你加载第二页时,通过附加?show=true
请求该页面(或者你编写的任何东西)到URL的末尾。当第二个页面加载时,它可以检查它的URL上的查询参数并决定如何修改自己。这是将临时参数从一个页面传递到下一个页面的最简单方法页。 注意:当两个页面不具有相同的源(例如,相同的域)时,浏览器会尝试阻止页面修改。 请参阅相同原始策略的说明 。 因此,如果您的问题与不同域上的页面有关,那么您需要找到一种不同的方法来解决您的问题。 像加载项这样的东西有时可以绕过同源策略,但是由于众多安全原因,常规页面javascript无法实现。
因为我找不到一个我认为匹配的问题足以完全复制,我会发一个答案:
是否可以在一个文档中使用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';
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.