我正在尝试创建一个div
,其中包含PHP网页,但是当我点击div
中的任何链接时,它会在新窗口中加载。
有谁知道如何解决这个问题?
我也尝试使用iframe
代替div
,但却造成了其他问题。
HTML code:
<div id="cover5">
<div id="warning">
<?php include 'SignIn.php'; ?>
<p align="center">
<a href="#" onclick="javascript:cover5();">Home</a>
</p>
</div>
</div>
JS代码:
function cover5() {
var cover = document.getElementById('cover5');
if (vis) {
vis = 0;
cover.style.display='block';
}
else {
vis = 1;
cover.style.display='none';
}
}
答案 0 :(得分:2)
您必须在Web应用程序的客户端和服务器端之间进行区分。
<?php include 'SignIn.php'; ?>
是服务器端命令,因为<?php ?>
,这意味着用户永远不会完全看到该行。
如果您的SignIn.php
文件包含例如<a href="go-there.php">my link</a>
,则用户只能获得该包含的输出,即
<div id="warning">
<a href="go-there.php">my link</a
</div>
当用户点击该链接时,他的浏览器会加载它,好像这个<a />
已经硬写直接在您的HTML代码中,然后在新窗口中打开它
我不知道如何使用原生JS,但使用jQuery,你可以尝试这样的事情:
$(function() {
$("#warning a").each(function() {
$("#warning").load($(this).attr("href"));
});
});
答案 1 :(得分:1)
要从页面上的元素内的特定链接呈现html,您需要运行ajax
GET
调用,并加载html。然后在div
。
使用jQuery:
$("a").click(function(){ //calls function when anchor is clicked
var link = $(this).prop("src"); //finds the link from the anchor
$.get(link,function(data, status, xhr){ //makes an ajax call to the page
$("#myDiv").html(data); //replaces the html of #myDiv with the returned page
});
});
希望有所帮助
答案 2 :(得分:0)
HTML CODE:
<div id="cover5">
<div id="links">
<p align="center">
<a href="#" onclick="javascript:cover5();">Home</a>
</p>
</div>
<div id="warning">
<?php include 'SignIn.php'; ?>
</div>
</div>
和JS代码:
function cover5() {
var cover = document.getElementById('warning');
if (vis) {
vis = 0;
cover.style.display='block';
}
else {
vis = 1;
cover.style.display='none';
}
}
每当用户点击“链接”div中的链接时,它将调用JS函数“ cover5()”
您可以使用jQuery或ajax弹出“警告”div
在您的代码中,您添加了指向 worning div的链接,以便在第二次ti时隐藏所有链接。