这是一个奇怪的问题,我讨厌 iFrames,但我使用 PhoneGap 和 Codiqa 进行移动应用程序开发,Codiqa 输出 HTML,对于我想要合并到 Codiqa 的 HTML 中的所有外部表单,它会加载到 iframe 中。 Codiqa 使用 div ID 引用,以便当您单击菜单项时,它会在 HTML 中加载该页面 ID,然后还在父窗口中加载该 div 内的 iframe。此外,父窗口有自己的提交、重置和后退按钮。我需要这些按钮来调用和使用在 iFrame 中加载的页面中的函数...
显然,这与parent.myfunction()的工作方式完全相反,我想知道这是否可能,或者我是否需要重新创建我的代码而不使用iFrame,但我不知道如何才能做到这一点去吧。 PHP 包含并不能很好地工作,我来找出答案......谢谢!或者也许我只需要将每个表单的所有 JS 文件移动到父文件夹中,并且必须单独链接到表单?我不知道...请指教。以下是其中一个页面 ID 的示例:
HTML(Codiqa)
<a href="#page17" data-transition="flip">
Extracting
</a>
<div data-role="page" id="page17">
<div data-theme="a" data-role="header">
<h3>Extracting</h3>
</div>
<div data-role="content">
<iframe src="extraction/extract_form.html"
name="Cable_Extraction_Worksheet" class="contentiframe"></iframe>
</div>
<div data-role="tabbar" data-iconpos="left" data-theme="a">
<ul>
<li>
<a href="#page1" data-transition="flip" data-theme="" data-icon="arrow-l">
Back
</a>
</li>
<li>
<a href="#" data-transition="none" data-theme="" data-icon="minus">
Reset
</a>
</li>
<li>//THIS IS THE BUTTON, AND JS FUNCTION I NEED TO CALL ONCLICK
<a onclick="uploaddata();" data-transition="none" data-theme="" data-icon="check">
Submit
</a>
</li>
</ul>
</div>
</div>
IFRAME的JS函数
function uploaddata() {
//Read all of the data from the page
for (eID in extractform) {
extractform[eID] = document.getElementById(eID).value;
}
upload_extractform();
}
function upload_extractform() {
$.ajax({
type: 'POST',
url: './php/upload_extractform.php',
data: extractform,
async: false,
dataType: 'text',
success: function() {
alert("Thank you. Your Extraction form has been submitted.");
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error... " + textStatus + "\n" + errorThrown);
}
});
};
最佳答案
我认为这就是我正在寻找的:
onclick="document.getElementById('Cable_Extraction_Worksheet').contentWindow.uploaddata();"
这可靠吗?有人说它不能在所有浏览器中工作,也不能与包含 Jquery 的函数一起工作,而我的一些浏览器却可以。只是想验证一下,谢谢。
关于javascript - 需要 iFrame 外部的父按钮来调用 iFrame 内部加载的 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840006/