【问题标题】:passing iframe url to next page将 iframe url 传递到下一页
【发布时间】:2011-08-01 15:14:48
【问题描述】:

我在 iframe 中有一个自动生成的照片库,可以根据表单选择更改图像类别。这个想法是通过获取 url 来找到他们选择的图像,并使用 php.ini 将其传递到下一页。我可以从 iframe 获取 url,但是当我尝试将值传递到下一页时,我得到 about:blank。当我使用来自隐藏表单字段值的警报时,它也会在同一页面上执行此操作。我认为这是隐藏表单值的问题。

因此,如果您加载页面下方的隐藏表单值将出现警报,大约为空白。然后我有 2 个按钮,1 个处理表单并在下一页显示 about:blank;另一个在分配隐藏字段值之前从函数值中获取 url(这个是正确的值)。 url 值一旦分配给隐藏字段就永远不会出现。那么这是不可能的还是我做错了?

update 我发现值通过 IE 正确传递,只是 Firefox 出于某种原因没有将值传递到下一页。请有人告诉我这是为什么,是否有跨浏览器解决方案?

index.php
<html>
<head>
<script type="text/javascript" runat="server">
//this function gets url from iframe on same domain
  function framehref(frame,url){
  if(typeof(frame)=='string'){//find iframe (will not find a frame):
  frame=document.getElementById(frame);
}
  if(frame.tagName=='IFRAME'){//iframe:
  if(url==undefined){ return( frame.contentWindow.document.location );}
  frame.contentWindow.document.location.href=url;
}else{//frame:
  if(url==undefined){ return( frame.document.location );}
  frame.document.location.href=url;
}
}
</script>
</head>
<body>
<form method="post" action="modify.php" name="step1" border="0"><br/>


<iframe src="http://localhost/iframemain.php/" id="myIframe" name="myIframe"     width="510" height="400"></iframe>



<div id="mydiv"></div>


<input type="submit" value="nextpage!">
<input type="button" value="get url!" onclick="alert (framehref('myIframe'));" >

<script type="text/javascript" runat="server">
var image = document.createElement("input");
image.setAttribute("type", "hidden");
image.setAttribute("name", "url");
image.setAttribute("id","url");
image.setAttribute("value", framehref("myIframe"));
document.getElementById("mydiv").appendChild(image);

alert (document.getElementById("url").value)
</script>
</form>
</body>
</html>

这里是 modify.php

<?php
$url = $_REQUEST['url'] ;
?>
<html>
<head>
</head>
<body>

<?php
$url = $_POST['url'] ;
echo "<b>url:</b> $url"?>
</body>
</html>

【问题讨论】:

  • 如果 iframe 的 url 来自与父页面不同的域,则无法访问该 url。 iframe 也不是表单内的有效标签
  • 感谢您的输入,我不知道表单内的 iframe 标签无效,但将 iframe 放在表单外后,我仍然得到相同的结果。是的,iframe url 在同一个域上。

标签: php javascript url iframe


【解决方案1】:

你试过了吗:

if(url==undefined){ return( frame.contentWindow.document.src );}

或者基本上,尝试使用xxx.document.srcxxx.document.location 而不是location.href

【讨论】:

  • 好吧,我尝试使用 xx.document.src 和 xxx.document.location 切换并得到相同的结果。一旦将 url 值放入隐藏的表单字段,它总是说 about:blank。 url 提取功能效果很好,在将其放入表单之前,该值始终是正确的。这就是我试图在我的示例中展示的内容。我没有收到未定义的错误,该值显示 about:blank 当它应该显示 http://localhost/iframemain.php 或 http://localhost/images/yadayada.jpg 他们在站点中查看的任何页面时。感谢您的输入:)
猜你喜欢
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2014-09-18
  • 2018-06-07
  • 2011-02-19
  • 1970-01-01
相关资源
最近更新 更多