如何创建一个由单独Javascript生成的数据填充的弹出式html
How do you create a popup html populated with data generated from a separate Javascript
我找到的所有关于弹出窗口的教程都与我需要的略有不同,我不知道如何根据我的需要修改它们。
我有一个browser_action图标集,当你点击它时,它会从HTML中创建一个弹出窗口,我在一个单独的文件中有一个javascript,它向API发送XMLHttpRequest。
这就是我想要完成的,但如果这是不可行的,我愿意用其他方法来完成类似的结果:
我希望弹出。html出现时,浏览器插件按钮按下;然后,pop .html应该运行脚本httpsdetect.js,它将从另一个站点接收数据;最后,httpdetect .js应该将接收到的数据显示回popup.html中。
这是我到目前为止写的。
一个清单。json:
"manifest_version": 2,
"name": "HTTPS Detect",
"version": "1.0",
"description": "Whatever",
"icons": {
"48": "icons/border-48.png"
},
"browser_action": {
"default_icon": "icons/browser-32.png",
"default_title": "Page Info",
"default_popup": "popup/popup.html"
}
}
Popup.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="popup.css"/>
</head>
<body>
<script src="httpsdetect.js"></script>
</body>
</html>
CSS文件:
html, body {
width: 100px;
}
.responseText {
margin: 3% auto;
padding: 4px;
text-align: center;
font-size: 1.5em;
background-color: #E5F2F2;
cursor: pointer;
}
.responseText:hover {
background-color: #CFF2F2;
}
向另一个API发送GET请求的JavaScript。目前,它只是将接收到的数据发送到控制台,但我希望它填充popup.html:
console.log("Site hostname is: " + window.location.hostname);
var requestURL = "http://www.freegeoip.net/xml/" + window.location.hostname;
getRequest(requestURL, theCallback);
function getRequest(requestURL, theCallback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", requestURL, true);
xhr.onload = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
theCallback(xhr.responseText);
} else {
console.error(xhr.statusText);
}
}
};
xhr.onerror = function (e) {
console.error(xhr.statusText);
};
xhr.send(null);
}
function theCallback(theResponse) {
console.log(theResponse);
}
这是一个简单的版本。更复杂的需要你自己完成:)
<body>
<span id="mySpan"></span>
</body>
JS:
function theCallback(theResponse) {
var text = theResponse; // I don't know what you want... Just put the text of your response here.
var mySpan = document.getElementById("mySpan");
mySpan.textContent=text;
}
看一下:https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Display_a_Popup
核心是:
var text_entry = require("sdk/panel").Panel({
contentURL: data.url("text-entry.html"),
contentScriptFile: data.url("get-text.js")
});
相关文章:
- 用我的json数据填充JQuery DataTable
- 单击鼠标,用MySQL数据填充html表单输入字段
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 用 MySql 数据填充 JavaScript 数组
- 有没有一种方法可以用包含ENTER键换行符的SQL数据填充文本区域表单
- 将数据填充到TextArea和jquery对话框中
- 如何从LiveCycle中的下拉列表将一个子窗体中的数据填充到另一个子窗体的文本字段
- 我想用所选项目的数据填充我的编辑表单
- 使用jQuery用data-*数据填充表单文本输入
- 使用ng repeat用数组中的数据填充表行
- 无法将我的 JavaScript 数据填充为 HTML
- 如何使用随机数据填充 XML 文件
- 在 JavaScript 中使用 MySQL 数据库中的数据填充下拉列表
- 我正在用来自选择的数据填充文本框,它可以工作,但是
- 如何在 jQuery 中用 JSON 数据填充下拉列表作为 ajax 响应
- 用 JSON 数据填充 HTML
- 使用来自另一个表单的数据填充表单
- 如何从 html 表数据填充 javascript 模型
- 如何访问对象的键值?希望从对象数据填充表
- 骨干 js 并使用 fetch() 用数据填充模型