2016-08-03 5 views
2

Что такое селектор jQuery Мне нужно получить имя пользователя от main.html? Предупреждение должно сказать «Боб».Что такое селектор jquery для содержимого фрейма?

main.html

<head> 
<script> 
    alert(username); // *** not working *** 
</script> 
</head> 

<frameset> 
    <frame name="left" src="left.html"> 
    <frameset> 
    <frame name="top" src="top.html"> 
    <frame name="right" src="right.html"> 
    </frameset> 
</frameset> 

right.html

<head> 
<script> 
    var username = 'Bob'; 
</script> 
</head> 

ответ

0

Используйте contentWindow свойство.

Пример:

document.getElementById('frame_id').contentWindow.$('#' + idOfElementInFrame); 

Примечание: это работает для iframe тегов. Он должен работать и с тегами frame, но при условии, что тег frame устарел, у вас могут быть проблемы.

+0

Спасибо Dhiviya. Как я могу получить доступ к переменной javascript в заголовке contentWindow вместо элемента DOM по идентификатору? – p1xelarchitect

+0

@ p1xelarchitect, так как имя пользователя имеет глобальную область видимости в контенте contentWindow, вы можете получить его с помощью contentWindow.username (если глава документа уже выполнена в кадре, когда вы обращаетесь к переменной). –

1
There is an example: 
(1)mainpage: 

    <html> 
    <script> 
    function show(){ 
     var winleft = window.frames["left"]; 
     alert(winleft.username); 
    } 
    </script> 
    <frameset cols="25%,50%,25%"> 
     <frame src="left.html" name="left"> 
     <frame src="left.html" name="middle"> 
     <frame src="left.html" name="right"> 
    </frameset> 

    </html> 

(2)left.html 

<head> 
<script> 
    var username = 'Bob'; 
</script> 
</head> 

(3) why? Каждый кадр имеет свой собственный объект «окно», , вы должны получить «оконный» объект кадра [«left»], а переменная «имя пользователя» - это протекция окна кадра [«left»] (winleft) object.so, вы можете получить значение имени пользователя.

Смежные вопросы