【发布时间】:2014-09-06 05:44:53
【问题描述】:
我有这个代码,它在单击按钮时返回 iframe 的 URL
<html>
<body>
<iframe src="start.php" name="vframe" id="vframe"></iframe>
<script>
function glink() {
alert(document.getElementById('vframe').contentWindow.location.href);
}
</script>
<button onclick="glink()">Click me</button>
</body>
</html>
我想要做的是以某种方式使用 javascript 函数创建一个变量(它通过 onclick 捕获的链接)在函数内部而不需要可以在父级中使用的 onclick页面
例如
<html>
<body>
<iframe src="start.php" name="vframe" id="vframe"></iframe>
<script>
function glink() {
var x = document.getElementById('vframe').contentWindow.location.href;
}
</script>
Then I can use var x in this way ...
<script> if ($link =="start.php") { echo '<img src="start.jpg">' } else {
echo '<img src="end.jpg">' }
</script>
</body>
</html>
显然,javascript 能够以某种方式获取链接,但我需要以编程方式获取它,而不必依赖“点击”,并且我需要能够将链接保存在变量中,以便我可以使用如上所述,它在一个条件语句中。
我对javascript语法不太熟悉。
====
编辑
====
我试过这个(基于 DevishOne 的建议):
<html>
<body>
<iframe src="start.php" id="vframe"></iframe>
<script>
function glink() {
var x = $('#vframe').attr('src');
$.get('processIframeLink.php',{link:x});
}
</script>
<?
$link = $_REQUEST['link'];
echo $link;
if ($link =="start.php") {
echo '1';
} else {
echo '2';
}
?>
</body>
</html>
但在 '$_REQUEST['link'];' 处没有显示任何内容
但是我刚刚尝试过:
<html>
<body>
<? $test = '<p id="demo"></p>';
echo $test;
?>
<iframe src="start.php" name="vframe" id="vframe"></iframe>
<script>
document.getElementById("demo").innerHTML = document.getElementById('vframe').contentWindow.location.href;
</script>
</body>
</html>
这里,echo $test 返回脚本的结果。但由于某种原因,它一直返回“about:blank”
如果有办法获得“document.getElementById('vframe').contentWindow.location.href;”显示 iframe 链接,那么我已经完成了目标。
我找到了“document.getElementById('vframe').contentWindow.location.href;”在网上很多地方都说它可以获取 iframe 链接,但我不断收到“about:blank”
===========
编辑
这是最新的尝试:
<html>
<body>
<iframe src="start.php"></iframe>
<script>
function glink() {
var x = frames[0].location;
document.getElementById("demo").innerHTML = x;
}
</script>
<button onclick="glink()">Click me</button>
<? $link = '<p id="demo"></p>'; ?>
echo '<p id="demo"></p>';
?>
</body>
</html>
它的作用是(点击后),允许 JS 找到链接,然后 PHP 将其作为变量读取。这里唯一的问题是如果没有“点击”,frames[0].location; = "about:blank" ... 如果有是点击,那么代码会将链接写入 PHP 变量。
如何在不点击或的情况下“阅读”链接以模拟点击以引入链接,这将是理想的。
【问题讨论】:
-
要与
JS通信 ->PHP你需要使用ajax因为 PHP 在页面渲染后已经离开了范围。 -
您已经用“jQuery”标记了这个问题,但您似乎没有使用 jQuery。你会接受 jQuery 答案吗?
-
当然,任何可行的方法......我已经为此工作了一周
标签: javascript php jquery html