elFinderをポップアップして親ウィンドウにパスを返す方法
elFinderをポップアップして親ウィンドウにパスを返す方法は、論理的に考えると特に難しくはないのですが、色々と試すうちに割と時間がかかってしまったので、備忘録的に、ここに残しておきます。
【解決法】
elFinderとModaalを使って、elFinderをポップアップして元ページのテキストボックスに値をセットする形です。
index.html
<a href="#" id="finder">
<img src="/img/icon.svg">
</a>
<link rel="stylesheet" type="text/css" href="/Modaal/dist/css/modaal.min.css">
<script type="text/javascript" src="/Modaal/dist/js/modaal.min.js></script>
<script>
jQuery(function($){ // WP利用可
finder = $('#finder').modaal({
type:'iframe',
content_source: '/elFinder-2.1.61/elfinder.html',
height:400,
hide_close:true,
modal:true,
});
});
</script>
/elFinder-2.1.61/elfinder.html
getFileCallback : function(file, fm) {
$('#box', parent.document).val(file.url); // #boxに値を返す
window.parent.finder.modaal('close'); // finderのModaalを閉じる
},
【備考】
要は、「finder = $(‘#finder’).modaal();」でポップアップと同時に変数に入れてしまい、ポップアップウィンドウ側からその変数(オブジェクト)にアクセスする形です。