2013-05-16 2 views
0

У меня есть div. Этот div живет внутри iframe. Этот div имеет ширину. Я хотел бы получить эту ширину через jQuery. Прилагаются некоторые из моих приключений при этом. Пожалуйста, наслаждайтесь!Определить прагматически ширину div внутри iFrame через jQuery

http://i.imgur.com/AXdfU61.jpg
http://i.imgur.com/Y9MB6Sg.jpg

EDIT - Кроме того, почему мои ошибки броска консоли, если я начинаю какую-либо строку с $?

EDIT 2 - Упрощенный вопрос об основных принципах кости.

+0

Элемент, который вы пытаетесь получить, находится в iframe. вы можете столкнуться с этим => http://stackoverflow.com/questions/364952/jquery-javascript-accessing-contents-of-an-iframe – PlantTheIdea

+0

@PlantTheIdea из моего понимания этой статьи, это говорит о загрузке содержимого междоменного контента. В моем примере я изменил URL-адрес, но оба родителя и ребенка находятся в одном домене. – GrimPanda

+0

вы не должны останавливаться после первого ответа, потому что вторая ценность.его то же, что и один @joao. – PlantTheIdea

ответ

0

Я решил. Хотя мой обходной путь для этой проблемы работает, у меня было несколько других проблем с jQuery на моем сайте. А именно, $ не работает в консоли. Я знал, что у меня есть ссылка на jQuery, но $ не является допустимым объектом.

Оказывается, что когда jQuery работает в неконфликтном режиме, $ $ не доступен в стандартном прецеденте. Вместо этого, вы передаёте готовую функцию документа следующим образом:.

JQuery (документ) .ready (функция ($) {

Теперь он является действительным объектом и может быть использован в обычном режиме Это позволяет Jquery работать в режим без конфликтов и по-прежнему имеет доступ к $

Вы можете прочитать об этом здесь: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

(JQuery noConflict Упаковщики раздел)

Надеется, что это помогает кто-то

!
0

Использование $("#IDofDIV").width(); Вам нужно будет использовать идентификатор вместо класса для элемента, который вы хотите изменить/получить ширину. В классах много элементов, могут быть даже сотни элементов с одним классом. Вам нужно указать какой элемент, а не группу элементов.

Таким образом, использование идентификатора было бы самым простым, хотя есть много других способов.

Here is a link to .width(); documentation.

Также вы используете Iframe, так что вы можете иметь проблемы просто запуск скриптов из консоли. См. Первый комментарий по вашему вопросу, где @PlantTheIdea дал объяснение этому.

+1

Позвольте мне нанести удар. Я использую плагин Wordpress (lighbox plus colorbox) для достижения iframe, поэтому мне придется взломать свой код, чтобы добавить идентификатор. Я вернусь как можно скорее. – GrimPanda

+0

Я попытался получить доступ к нему через ID сейчас и все те же ошибки. (см. комментарий выше) – GrimPanda

1

В JQuery вы можете сделать что-то вроде этого:

$("#iframeId").contents().find('#divId').width(); 

Поскольку ваш IFrame не имеют идентификатор, либо изменить что либо найти его с помощью других средств, вы можете использовать $ («IFrame») в список всех iframe в вашем документе. Что касается ваших попыток, если вы используете $ ('. Span9'), это найдет все элементы с этим классом, поэтому вам также нужно найти другой способ получить свой элемент.

+0

Если вам нужна дополнительная помощь по этой проблеме, просто спросите: P – joao

+0

Я выследил код и добавил идентификатор в iframe под названием «игровой кадр» и идентификатор для span9, называемый «игровым полем» http://i.imgur.com/Y9MB6Sg.jpg – GrimPanda

+0

ok позвольте мне проверить, что я попробую в одном из моих проектов – joao

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