いつもお世話になっております。
数日前、「別ページのJavascript関数を呼び出すには」ということで質問させて頂いた者です。
https://teratail.com/questions/303361
とりあえず、DIVタグをhidden属性にした状態で、対象ページがロードされていることで、対象をFunctionを呼び出すことが出来て一安心していました。
しかし、素人の浅はかさで、画面の一部が崩れてしまっているため、元画面の一部のボタン等が効かない状態になっていることが判明しました。hidden属性で消えないオブジェクトがあり、元画面と重なってしまっているようです。どのブラウザを使っても同じなので、別の方法を考え直すことにしました。
現在は下記の状態です。Functionは呼び出せていますが、画面が崩れてしまっています。
html
1function Link_url_del(a, b) { 2 var url = "javascript:imfrListView.deleteRecord('hat_BM_mngr', '" + a + "', '" + b + "')"; 3 location.href = url; 4} 5<div hidden id="box"></div> 6<script> 7$(function(){ 8 $("#box").load("forma/normal/view/list_view/hat_BM_mngr?"); 9}); 10</script>
同じように、ページを隠した状態にしておくという意味で、
html
1function Link_url_del(a, b) { 2 var url = "javascript:imfrListView.deleteRecord('hat_BM_mngr', '" + a + "', '" + b + "')"; 3 location.href = url; 4} 5<object type="text/html" data="forma/normal/view/list_view/***?"> 6</object>
としてみると、画面は崩れなくなりましたが、fucntionの呼び出しが反応しなくなりました。
次に、iframeの中にあるfunctionを参照してみることにしました。
html
1function Link_url_del(a, b) { 2 var frm = document.getElementById('id_frm'); 3 frm.contentWindow.deleteRecord('hat_BM_mngr', a, b); 4} 5 6<iframe src=”forma/normal/view/list_view/***?” style=" visibility:visible;" id="id_frm"></iframe> 7
これはうまくいくかなと思って期待したのですが、iframeだと関数しかスコープが効かないのかよく判りませんが、反応しませんでした。
画面が崩れるのは、使用しているフレームワークが原因であることは間違いないと思われますので、何とも対応し難いのですが、別ページをグローバルスコープにする方法が他にあれば、教えて頂けると助かります。
よろしくお願いします。