将数据从选项卡1传递到选项卡2

时间:2013-03-19 14:55:24

标签: javascript html google-chrome tabs

我是stackoverflow的新手,我来到这里是因为我找不到html和javascript问题的明确答案。

我想要显示一个带有3个按钮的HTML页面,按钮将在onClick上执行3个脚本。我需要选项卡#1与选项卡#2进行通信以执行代码,但我仍然坚持如何执行此操作 - 这是我的HTML代码:

<!DOCTYPE html>
<html>
<body>

<!-- START STAGE 1 -->
<script>
function stage1()
{
// Here I want to open up a new tab so I'd do:
window.open('http://webpage.com', '_blank');
}
</script>

<!-- START STAGE 2 -->
<script>
function stage2()
{
// From here, I want to execute some JavaScript to the new tab I've opened
}
</script>

<!-- START STAGE 3 -->
<script>
function stage3()
{
// Again, I want to execute another script on the new tab I've opened
}
</script>

<button type="button" onClick="stage1()">STAGE1</button>
<hr />
<button type="button" onClick="stage2()">STAGE2</button>
<hr />
<button type="button" onClick="stage3()">STAGE3</button>
</body>
</html>

如果有人可以重新编写此代码并在3中留出空格以便我的代码在标签#1的标签#2上执行,我将非常感激。

提前谢谢! - 对不起,我有点像菜鸟哈哈。 干杯, Declan Land

1 个答案:

答案 0 :(得分:0)

这不是直截了当的,但我认为你可以通过“代理”页面来实现它,该页面在iframe中显示预期的站点(Twitter),并在您传递参数时运行所需的脚本地址(例如,proxy.htm?action=step2)或甚至为每个步骤使用单独的专用代理页面(proxy2.htm)。

但为了实现这一点,我相信您需要为锚链接的目标使用自定义名称(a target="proxy_twitter"),因此所有链接都会在同一个标​​签中打开。

可能的问题是第二个选项卡会在每次单击时重新加载代理页面,但是可以通过将参数更改为主题标签(proxy.htm#action=step2)来避免这种情况。

我自己对这种机制没有任何经验,但我已经看到它在某些网站上使用过。