gpt4 book ai didi

iframe - Chrome 扩展 : create tab from within an iframe in popup

转载 作者:行者123 更新时间:2023-12-01 14:24:28 24 4
gpt4 key购买 nike

在我的弹出页面中,我有一个 iframe 标签,其中有一个按钮。单击此按钮时,将调用包含在 iframe 脚本中的函数。此函数包含对 chrome.tabs.create({ url: "..."}); 的调用,但我不断收到 “Uncaught TypeError: Cannot call method 'create' of undefined ". 我想原因是我在 iframe 中,而不是在弹出页面本身中。

有没有办法克服这个问题并从 iframe 中创建一个新标签?

编辑

这是我的代码。

弹出页面的iframe加载如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style/frame_style.css" media="screen" />
<script src='jquery-1.8.3.js'></script>
<script src='scripts/frame_functions.js'></script>
</head>

<body>
<div>
<button value="Click to open Google in a new tab" class='new_tab_bt'></button>
</div>
</body>
</html>

frame_functions.js:

$(document).on("click", '.new_tab_bt', function(){
openNewTab();
});

function openNewTab()
{
chrome.tabs.create({ url: "https://www.google.com" });
}

最佳答案

您的代码无需任何更改即可工作,我添加了工作代码作为引用; iframe 的目标源 html 页面在哪里,您是如何从浏览器操作弹出窗口中引用它的?如果这没有解决共享问题,您是如何从浏览器操作弹出窗口中引用您的 iframe 的。

工作版本

list .json

简单代码,注册浏览器操作

{
"name": "Iframe Holder",
"description": "http://stackoverflow.com/questions/14429598/chrome-extension-create-tab-from-within-an-iframe-in-popup",
"version": "1",
"manifest_version": 2,
"browser_action": {
"default_popup": "popup.html",
"default_title": "Iframe."
}
}

popup.html

在浏览器操作的 popup 中包含目标页面。

<html>

<body>
<iframe width="300" height="300" src="iframe.html"></iframe>
</body>

</html>

iframe.html

使用了您的代码并删除了不相关的 css 文件等

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src='jquery.js'></script>
<script src='iframe.js'></script>
</head>

<body>
<div>
<button value="Click to open Google in a new tab" class='new_tab_bt'></button>
</div>
</body>

</html>

iframe.js

未经修改使用您的代码

$(document).on("click", '.new_tab_bt', function () {
openNewTab();
});

function openNewTab() {
chrome.tabs.create({
url: "https://www.google.com"
});
}

关于iframe - Chrome 扩展 : create tab from within an iframe in popup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com