gpt4 book ai didi

javascript - 打开一个包含 div 内容的新页面

转载 作者:行者123 更新时间:2023-12-03 07:51:20 26 4
gpt4 key购买 nike

我在 HTML 页面中有一些具有特定 ID 的隐藏 div:

<div id='log1' style='visibility: hidden;display: none;'>content</div>
<div id='log2' style='visibility: hidden;display: none;'>content</div>

然后是一些链接:

<a href='?' target='_blank'>Log 1</a>
<a href='?' target='_blank'>Log 2</a>

我希望浏览器使用相应 div 的内容打开一个新页面/选项卡(甚至是一个弹出窗口,但如果用户有弹出窗口阻止程序,这可能会很糟糕)。

我知道我可以执行一些 Javascript 来创建 float div 并在同一页面中显示数据,但我想避免这种情况。此外,如果有一种方法可以在没有 JS 的情况下完成我的要求(我对此表示怀疑),那就更好了。

最佳答案

如果不使用 JavaScript,您就无法基于 HTML 中的隐藏 div 执行弹出窗口,不。有一个 CSS 技巧,如果您将 div 放在远离页面的地方并给它们一个 ID,然后将其作为 anchor 链接到,浏览器会将其滚动到 View 中。

在 JavaScript 方面,它相当简单。首先,向它们添加一个 data-log 属性来告诉我们应该显示什么日志,然后:

var links = document.querySelectorAll("...some selectors for your links...");
Array.prototype.forEach.call(links, function(link) {
link.onclick = function() {
var log = document.getElementById(this.getAttribute("data-log"));
var wnd = window.open("", "_blank");
wnd.document.write(
"<!doctype html>" +
"<html><head>" +
"<meta charset='appropriate charset here'>" +
"<title>Title here</title>" +
"</head><body>" +
"<div>" + log.innerHTML + "</div>" +
"</body></html>"
);
wnd.document.close();
return false; // Prevents the default action of following the link
};
});

请注意,window.open 必须在点击处理程序内完成;如果弹出窗口是对用户操作的直接响应,大多数弹出窗口拦截器都会允许弹出窗口。

window.open 返回对窗口的引用,然后我们可以写入其文档。

<小时/>

(我通常不使用 onclick 处理程序,但您没有提到使用任何库,而且仍然有很多 IE8。使用 onclick 让我们使用 return false 来防止默认值;details in this small article 在我贫血的小博客上。)

关于javascript - 打开一个包含 div 内容的新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979974/

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