如何使用 javascript 或 JQuery 从不可见的 iframe 中获取隐藏字段值
Posted
技术标签:
【中文标题】如何使用 javascript 或 JQuery 从不可见的 iframe 中获取隐藏字段值【英文标题】:How to get hidden field value from invisible iframe using javascript or JQuery 【发布时间】:2014-03-16 02:36:11 【问题描述】:好的,现在是上午 01:16,我无法解决这个简单的问题。 我使用不可见的 iframe 上传照片并将一些文本发送到数据库。 iframe 指向 upload.php 并返回带有 insert_id 的隐藏文本字段(数据库中最后一行的 id) - 我需要此信息用于其他功能。
这是我的 iframe:
<iframe name="image_upload_frame" id="image_upload_frame" style="visibility: hidden">
一开始是空的,但是上传图片后有这个html:
echo '<img src="'.$sImage.'" />';
echo '<input type="hidden" id="session_id" value="'.$wpdb->insert_id.'" />';
这是我获取会话的 javascript)id 值:
var row_id = $("#image_upload_frame").contents().find("#session_id");
alert(row_id.val());
它不起作用。调试器什么也没说 - 它只是停止,没有错误,没有通知。
有人可以帮忙吗?我想听听其他选项如何将数据从 iframe 传递到主窗口。
谢谢,
【问题讨论】:
你的javascript什么时候触发?在您创建隐藏 iframe 或该 iframe 的页面加载事件之后立即?如果它在 iframe 准备好之前触发,$("#image_upload_frame").contents().find("#session_id")
将不会得到任何结果。
“好吧,现在是上午 01:16,我无法解决这个简单的问题。” - 睡一觉,明天早上你可能会带着解决方案醒来,喝完第一杯咖啡和早餐后;它有一个新的开始;-)
我注意到的一件事是您“似乎”在使用会话。我可能会为您提供解决方案,但我需要查看更多代码。如果你不使用会话,那么这可能是一个解决方案,它也适用于 JS;在一定程度上。
【参考方案1】:
如果我没有假设错,你的 html 是这样的:
<html>
<body>
<iframe id="hidden_iframe" name="hidden_iframe" style="display: none"></iframe>
<form method="post" target="hidden_iframe" action="./test1.php" encrypt="multipart/form-data">
<input type="file" name="file_upload" />
<input type="submit" value="submit" />
</form>
</body>
我的想法是在你的服务器端,你编写一个javascript代码来调用你客户端的javascript(实际上是iframe调用主窗口)。所以你的客户端代码应该是这样的:
<html>
<body>
<iframe id="hidden_iframe" name="hidden_iframe" style="display: none"></iframe>
<form method="post" target="hidden_iframe" action="./test1.php" encrypt="multipart/form-data">
<input type="file" name="file_upload" />
<input type="submit" value="submit" />
</form>
<script>
function callFromServerSide(params)
alert(params);
</script>
</body>
你的服务器端应该是这样的(在我的例子中是 test1.php):
<?php
$last_insert_id=100;
echo "
<script>
window.top.callFromServerSide('".$last_insert_id."');
</script>";
?>
玩得开心..
【讨论】:
以上是关于如何使用 javascript 或 JQuery 从不可见的 iframe 中获取隐藏字段值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 或 jQuery 更改数组内对象的值?
如何使用 jquery 或 javascript 删除索引处的行? [复制]
如何使用 jQuery 或 JavaScript 设置底边距
如何使用 PHP 或 JavaScript/jQuery 禁用地址栏?