我想为firefox编写一个扩展名,我用iframe编写了一个html页面,如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
</head>
<body>
<div style="height: 200px; width: 300px;" id="wrapper">
<iframe src="http://example.com" style="height:200px;width:300px"></iframe>
</div>
</body>
</html>
它对我有用,但是当用户单击扩展名图标,获取当前网址并更改iframe源或删除旧的iframe和内部的新iframe时,我想通过currnet url更改iframe url,并使用新的URL,例如{{1 }}
我如何创建它?
答案 0 :(得分:1)
用户点击扩展程序图标时
您是指browserAction
图标还是PageAction
图标?
有区别。
如果弹出式窗口是在manifest.json
(自动)中或通过事件侦听器设置的,则也有所不同。
根据您的示例对HTML进行采样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
</head>
<body>
<div style="height: 200px; width: 300px;" id="wrapper">
<iframe src="" style="height:200px;width:300px"></iframe>
</div>
<script src="popup.js"></script>
</body>
</html>
popup.js
// run the function
setIframe();
async function setIframe() {
// get the active tab
const tabs = await browser.tabs.query({currentWindow: true, active: true});
// make the URL based on url of the tab i.e. tabs[0].url
const url = ...... // do whatever
// set iframe to that url
document.querySelector('iframe').src = url;
}