语言: PHP和jQuery
我尝试做的是在用户点击它时弹出动态链接 我不希望页面在新窗口中打开,但是在当前页面上覆盖的模式页面中。
因此,使用javascript,当用户点击此链接时,操作是找到链接的attr href
,并使该链接的代码位于模态窗口内的iframe内。
带有动态PHP链接的 HTML :
<a href="http://www.facebook.com/share.php?u=<?php echo $root_url; ?>?id=<?php echo $rows['id']; ?>&title=<?php echo urlencode($rows['keyword']); ?>" style="border: none;" onclick="return false;" class="fblink" target="iframe"><img src="./img/Facebook.png" style="float: right; margin-top: 0px;" title="Share on Facebook" alt="Share on Facebook" id="<?php echo $rows['id']; ?>"></a>
jQuery脚本:
var makePop = function() {
link = $(this).attr('href');
return '<div class="the_box" id="box" style="display: block;"><a class="boxclose" id="boxclose"></a>
<iframe src="' + link + '" height="500px" width="600px" id="" name="iframe"></iframe></div>';
} // End of Function.
$("a.fblink").click(makePop);
我不知道如何实现这一点......这不起作用 任何人?的:○)
答案 0 :(得分:2)
从事件处理函数返回一个字符串没有意义,它不会做任何事情。
您需要实际创建模态窗口。请尝试jQuery UI。
答案 1 :(得分:1)
以下内容应该提供您所寻找的内容。但是,需要考虑XHR“加载”调用的相同原始策略等问题。
见示例:http://jsfiddle.net/qeXea/2/
注意:由于相同的原始政策,iframe无法填充内容,只需在您的网站上设置您自己的网页,然后使用您自己的网址进行查看。
HTML
<a href="http://www.yoururl.com" onclick="launchUrl(this); return false;">Click Here</a>
<div id="fade"></div>
<iframe id="dialog" src=""></iframe>
<script type="text/javascript">
function launchUrl(owner) {
$('#fade').show();
var link = $(owner).attr('href');
$('#dialog').load(link, function(response) {
$('#dialog').show();
});
}
</script>
CSS
#fade {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
display: none;
position: absolute;
background-color: rgba(255, 255, 255, 0.5);
}
#dialog {
top: 100px;
left: 100px;
width: 200px;
height: 200px;
z-index: 101;
display: none;
position: absolute;
}
替代
HTML
<a href="" onclick="launchUrl('http://www.yoururl.com'); return false;">Click Here</a>
<div id="fade"></div>
<iframe id="dialog" src=""></iframe>
<script type="text/javascript">
function launchUrl(link) {
$('#fade').show();
$('#dialog').load(link, function(response) {
$('#dialog').show();
});
}
</script>