2016-02-08 4 views
1

Что не так с этим куском кода:прилагая дел до IFrame

jQuery('<iframe id="groundplan_popup" class="groundplan_hidden" />').appendTo("#popup_holder"); 
var iframe = jQuery("#groundplan_popup"); 
iframe.attr("src","::censored::" + filename); 
var iframe_body = iframe.contents().find('body').append('<div id="groundplan_popup_exit"></div>'); 
var exit_btn_gp = iframe_body.append(jQuery("#groundplan_popup_exit")); 

Так я должен динамически создать элемент IFrame, который откроет файл в формате .pdf во всплывающем окне, и эта часть работ. То, что я не могу сделать, это создать div с идентификатором «groundplan_popup_exit» внутри этого iframe. Я не знаю точно, почему это не работает и что именно я делаю неправильно. Когда я осмотрю консоль окна iframe, вы обнаружите это предупреждение:

/deep/combinator устарел. См. https://www.chromestatus.com/features/6750456638341120 для получения более .

Не знаете, имеет ли это какое-либо отношение к причине, почему это не работает.

EDIT:

Это то, что мой код выглядит сейчас. enter image description here

консоли PrtScr: enter image description here

Iframe консольные элементы PrtScr:

enter image description here

Так что я в основном путают о всей ситуации, я не то, что опыт использования JQuery в вообще, и это мой первый раз, используя его с iframes. Я даже не уверен, существует ли даже #groundplan_popup_exit div и как его найти, если это так.

+1

Вы должны добавить его когда-то IFrame загружен –

+0

Не могли бы вы создать некоторые демо взломать? помогли бы много увидеть проблему и исправить ее – Starx

+0

Я отредактировал вопрос, так что, может быть, теперь моя проблема немного ясна –

ответ

0

Я вижу некоторые проблемы:

var iframe_body = iframe.contents().find('body').append('<div id="groundplan_popup_exit"></div>'); 

Здесь вы уже Добавляя элемент к телу.

var exit_btn_gp = iframe_body.append(jQuery("#groundplan_popup_exit")); 

После приложили выше, вы пытаетесь снова добавить с jQuery("#groundplan_popup_exit") которая даже не существует.

Fix (непроверенные) будет что-то вроде этого:

var iframe_body = iframe.contents().find('body'); 
var exit_btn_gp = iframe_body.append('<div id="groundplan_popup_exit"></div>'); 
+0

Я отредактировал эту часть, но ее просто невозможно найти в iframe DOM –

+0

@JesusChrist. Что вы подразумеваете под 'it' btw (просто смущен)? – Starx

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