如果我在页面上有一些隐藏元素,其中包含一些内容,我该如何创建一个链接,当用户点击它时,浏览器会打开一个新窗口并显示内容(只有内容,例如一些 json 数据)?
附言。我知道在页面上隐藏一些内容可能是个坏主意。最好放一个可以从服务器获取内容的操作链接。但它涉及许多其他令人头疼的问题,并且不是我创建了页面,所以如果有一个相对简单的解决方案,请告诉我...
如果我在页面上有一些隐藏元素,其中包含一些内容,我该如何创建一个链接,当用户点击它时,浏览器会打开一个新窗口并显示内容(只有内容,例如一些 json 数据)?
附言。我知道在页面上隐藏一些内容可能是个坏主意。最好放一个可以从服务器获取内容的操作链接。但它涉及许多其他令人头疼的问题,并且不是我创建了页面,所以如果有一个相对简单的解决方案,请告诉我...
Please use http://okonet.ru/projects/modalbox/index.html with inline content setting
打开第二页时,您可以将隐藏元素的(URL 编码)内容作为参数传递给 URL。然后,该参数可以(未编码并)在加载时插入到第二页的正文中。
以下示例在 OS X 上本地运行。在其他操作系统上,该示例可能需要放置在实际的 Web 服务器上才能运行:
page1.html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Page 1</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
function openwindow(){
window.open("page2.html?html="+escape($("#myDiv").html()));
}
</script>
<style>
.hidden {
visibility: hidden;
}
</style>
</head>
<body>
<a href="javascript:openwindow();">Click Me!</a>
<div class="hidden" id="myDiv">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/HTML5-logo.svg/200px-HTML5-logo.svg.png">
<p>See the HTML5 <a href="http://www.w3.org/TR/2012/WD-html5-20120329/">specification</a></p>
</div>
</body>
</html>
page2.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Page 2</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
jQuery.extend({
// from: http://paulgueller.com/2011/04/26/parse-the-querystring-with-jquery/
parseQuerystring: function(){
var nvpair = {};
var qs = window.location.search.replace('?', '');
var pairs = qs.split('&');
$.each(pairs, function(i, v){
var pair = v.split('=');
nvpair[pair[0]] = pair[1];
});
return nvpair;
}
});
</script>
<script>
$(document).ready(function(){
$(document.body).html(unescape(jQuery.parseQuerystring().html));
});
</script>
<style>
.hidden {
visibility: hidden;
}
</style>
</head>
<body>
<!-- this will be replaced -->
</body>
</html>