需要iFrame外部的父按钮来调用iFrame内部加载的JS函数

Need Parent Buttons Outside iFrame to Call JS Functions Loaded Inside the iFrame

本文关键字:iFrame 内部 加载 JS 调用 函数 按钮 外部 需要      更新时间:2023-09-26

这是一个奇怪的问题,我讨厌iFrames,但我正在使用PhoneGap和Codiqa进行移动应用程序开发,Codiqa输出HTML,以及我想在Codiqa加载在iFrames中的HTML中合并的所有外部表单。Codiqa使用div ID引用,因此当您单击菜单项时,它会在HTML中加载该页面ID,然后在父窗口中加载该div内的iframe。此外,父窗口有自己的提交,重置和后退按钮。我需要这些按钮调用和使用的功能,从页面加载内iFrame…

显然,这与parent.myfunction()的工作方式完全相反,我想知道这是否可能,或者我是否需要重新创建我的代码而不使用iFrames,但我对如何做到这一点一无所知。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 = " . getelementbyid (Cable_Extraction_Worksheet) .contentWindow.uploaddata ();"

这个可靠吗??有人说它不能在所有浏览器中工作,或者不能在包含Jquery的函数中工作,而我的一些浏览器可以。只是想验证一下,谢谢。