如何在两个不同的HTML文件之间共享HTML标记?

时间:2010-10-25 12:18:57

标签: javascript

我正在尝试为Opera 11构建一个简单的扩展程序,但我确信大多数开发人员遇到了这个问题。

如果您不知道,Opera中的扩展名只是另一个.html文件,如果您愿意,可以使用一些Javascript。

我遇到的问题是从CALLING网页获取HTML源代码并将其传递给popup.html。

因此,例如,我在我的博客上,我想传递该标记并将其作为“文档”变量。相反,'document'变量是空的,因为它使用的是popup.html的内容 - 而不是调用内容。

我怎样才能将主浏览器的HTML传递给popup.html?

以下是我的代码,您可以看到我正在尝试做的事情:

<script>
    var imgs = document.getElementsByTagName('img')
    var t = "";
    for (var i=0, n=imgs.length;i<n;i++) t += '<br><a href="'+imgs[i].src+'"><img src="'+imgs[i].src+'" width="100"></a>';
    document.write(t)
</script>

3 个答案:

答案 0 :(得分:1)

嘿朋友,还有另一个解决方案。

当您使用open()方法打开一个窗口时,它将返回该窗口的上下文。

所以,如果你这样做:

var popup = window.open("http://something","blablabla");

然后,您可以使用变量“popup”访问该窗口的文档:

popup.document.write("Anything you wanna!");

我认为这可以解决您的问题,因为现在您可以在弹出窗口上用主窗口上的代码编写html。

答案 1 :(得分:0)

嘿朋友,弹出窗口是另一个窗口,有自己的文档对象和窗口对象。

考虑使用内部弹出窗口,例如jquery-ui提供的类型,用于在代码的相同上下文中打开弹出窗口。

jquery dialog

答案 2 :(得分:0)

这很简单。创建弹出窗口后,将引用保存到变量中,然后可以调用方法或查找并将数据传递给任何元素。

示例:

var popup = window.open("child.html");
popup.document.getElementById("id").value = "xxx";

我希望这会有所帮助