Как открыть диалоговое окно в другом фрейме, используя jquery-ui - PullRequest
3 голосов
/ 11 мая 2011

Я создаю небольшую веб-страницу, используя jquery-ui-1.8, которая имеет набор фреймов и три фрейма.

<frameset id="mainFrame"cols="25%,*,25%"> 
    <frame  id="f1" src="test.php"></frame> 
    <frame id="f2" src="test2.php"/>
    <frame  />
</frameset>

Затем я добавил кнопку в файл test.php, который загружается в первый кадр (f1), и div в файл test2.php, который загружается во второй кадр.

<div id="testdiv"> this is test 2</div>

Затем мне нужно вызвать диалоговое окно jquery из «testdiv» на втором кадре (f2), когда я нажимаю на кнопку в f1.

Я попробовал следующие решения, приведенные в этих темах. [1] - Отображение диалогового окна jquery в родительском окне

var $jParent = window.parent.jQuery.noConflict();
var dlg1 = $jParent('#testdiv');
dlg1.dialog();

и [2] - Отображение диалогового окна jQuery UI внутри фрейма из букмарклета?

var frame = window.frames[1];
var div = $(frame.document.getElementById("testdiv"));
div.html("My popup contents");
div.dialog();

Но ни один из них не отображает диалоговое окно во втором кадре. Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.

1 Ответ

4 голосов
/ 13 мая 2011

просто сделайте тест по этому пути, возможно, это не лучший способ, но вы можете попробовать это. (Внимание: не забудьте добавить атрибут -> name = "f2" <- в iframe f2) </p>

в test.php:

<button onclick="parent.f2.$('#testdiv').dialog('open');">test</button>

в test2.php:

<link type="text/css" href="jquery-ui.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery-ui.js"></script>
<script type="text/javascript">
$(function() {
   $( "#testdiv" ).dialog({
    autoOpen: false
   });
});
</script>

<div id="testdiv"> hello world! </div>
...