これは奇妙な質問で、私は iFrame が嫌いですが、モバイル アプリケーションの開発に PhoneGap と Codiqa を使用しています。Codiqa は div ID 参照を使用するため、メニュー項目をクリックすると、そのページ ID が HTML に読み込まれ、親ウィンドウでもその div 内の iframe が読み込まれます。また、親ウィンドウには、独自の送信、リセット、および戻るボタンがあります。iFrame 内で読み込まれるページから関数を呼び出して使用するには、これらのボタンが必要です...
どうやら、これはparent.myfunction()の動作とは正反対であり、これが可能かどうか、またはiFrameを使用せずにコードを再作成する必要があるかどうか疑問に思っていますが、どうすればそれを行うことができるかについてはわかりません. PHP のインクルードがうまく機能しないことがわかりました... ありがとうございます。それとも、各フォームのすべての JS ファイルを親フォルダーに移動し、フォームに個別にリンクする必要があるのでしょうか? わかりません...アドバイスしてください。ページ ID の 1 つの例を次に示します。
HTML (コディカ)
<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);
}
});
};