2015-02-25 4 views
0

У меня есть страница1, которая содержит тег объекта, который загружает page2. Дело в том, что при открытии страницы 1 мне нужно скрыть определенный div на странице2, когда тег объекта загрузит его. В противном случае при открытии страницы2 из браузера он должен выглядеть нормально.Html Тег объекта: элемент доступа на странице html

Мой HTML и Javascript код выглядеть следующим образом:

page1.html

<html> 
.... 
<div id="myUrl">load object tag here</div> 

<script> 
... 
    document.getElementById("myUrl").innerHTML = '<object type="text/html" width="500px" height="500px" data="path/page2.html" ></object>'; 

</script> 
</html> 

Что мне нужно, чтобы скрыть mydiv если стр.2 загружается в теге объекта в page1:

страница2.html

<html> 
.... 
<div id="mydiv"><h3>test title</h3></div> 
.... 

<script> 
//if opened from htmlpage1 hide the div 
$("#mydiv").hide(); 
</script> 

</html> 

После выполнения некоторых исследований я пришел с двумя возможными идеями:

  • Использования пар тега внутри в стр.1 и проверить его значение в page2, чтобы скрыть mydiv
  • или иметь яваскрипт метода в page2 который проверяет, является ли документ (#document) дочерним/внутри объекта.

Я изо всех сил старался реализовать любую из этих идей, но безуспешно. Буду признателен, если кто-то может мне помочь. Спасибо.

+1

Любопытно, почему вы используете '' для загрузки html-страниц? – charlietfl

+0

Хорошо, давайте просто скажем, что это ограничение. Страница, которую я пытаюсь загрузить, очень детализирована и содержит множество вкладок, ссылок и таблиц и так далее и должна быть загружена в диалоговом окне специальной библиотеки jQuery .... Я пробовал использовать разные способы, такие как загрузка jQuery, но он действительно не загружал страницу так же чисто, как и следовало бы, также любая ссылка с щелчком откроется на начальной странице не в диалоговом окне ... но да, это решение, которое я принял после нескольких способов. – Orochi1992

+0

никогда не видел этого раньше, какие-либо преимущества по сравнению с iframe? – charlietfl

ответ

1

Как @charlietfl, мне также интересно, почему вы используете тег <object>. Но общий подход, который я бы рекомендовал, был бы для страницы-1 для отправки page-2 параметра запроса (например, «path/page2.html? DisableCheck = true»).

Затем вы можете проверить это на странице-2 следующим образом:

<script> 
    if (location.search.indexOf("disableCheck")) { 
    $("#mydiv").hide(); 
} 
</script> 

Этот запрос-парам подход мог бы, очевидно, быть фальшивым, но я подозреваю, что это не является серьезной проблемой.

+0

Ye объект был решением, если бы я хотел отобразить полную и рабочую html-страницу правильно в диалоговом окне, как будто в другом окне ... Для вашего ответа это можно отправить этот параметр запроса в атрибуте данных? – Orochi1992

+0

Hm. Должно быть возможно, да. Насколько я знаю, JavaScript на странице 2 должен иметь возможность читать строку запроса, как обычно. – brianvaughn

+0

Я попытался сделать это, но он всегда возвращает -1, но хорошая идея. Я нашел метод javascript, который проверяет параметр запроса, и теперь он работает благодаря направлению! – Orochi1992