jquery 使用自定义HTML而不是URL打开新选项卡

q5iwbnjs  于 2023-08-04  发布在  jQuery
关注(0)|答案(4)|浏览(104)

我做了一个Greasemonkey脚本,并希望打开一个新的标签,将不会显示一个URL,但一些HTML是脚本的一部分。所以基本上我想做这样的事情(这显然是行不通的):

window.open('<html><head></head><body></body></html>');
or
GM_openInTab('<html><head></head><body></body></html>');

字符串
任何提示都欢迎!

zu0ti5jz

zu0ti5jz1#

你可以这样做:
第一个月
然后再去做
newWindow.document.write("ohai");

disbfnqx

disbfnqx2#

**2021年4月编辑:**此答案已过时。Chrome banned将数据URI加载到顶部窗口,而iframe solution在Firefox中不适用。
**原始答案:**如果其他答案为Error: Permission denied to access property "document",请参阅this question如何处理同源策略问题,或this one

或者,快速而肮脏地使用数据URI:

var html = '<html><head></head><body>ohai</body></html>';
var uri = "data:text/html," + encodeURIComponent(html);
var newWindow = window.open(uri);

字符串

e5nszbig

e5nszbig3#

我把这个放在这里,以防有人需要。我已经找到了解决这个问题的方法,我创建了一个小网站(https://tampermonkeykostyl.dacoconutnut.repl.co),你可以在哈希中给予html!示例:(您可能需要中键单击URL,以便在新选项卡中实际打开)

// get url
var el = document.getElementById("url");

// make html
var HTML = `
<h1>hi</h1>
if you can see this then cool <br>
<i>this should be italic</i> and <b>this should be bold</b>
`;

// insert html after the link to demonstrate
document.body.insertAdjacentHTML("beforeend", HTML); // https://stackoverflow.com/a/51432177/14227520

// set url href
el.href = "https://tampermonkeykostyl.dacoconutnut.repl.co/#" + encodeURI(HTML);

// make it open in new tab
el.target = "_blank";

个字符

eit6fx6z

eit6fx6z4#

假设您在本地存储了一个.html文件。你可以这样做:

var newWindow = window.open();
newWindow.document.location.href = "/path/to/html/file";

字符串

相关问题