2013-06-28 6 views
0

Вот в JS я используюOnClick не загружается IFRAME

<script type="text/javascript"> 
function loader(value, url) 
{ 
    document.getElementById("page").innerHTML=value; 
    document.getElementById("display").src = url; 
}var home = "HOME"; 

var admin = "ADMINISTARTOR"; 
var sales = "SALES"; 
var isve = "ISVE"; 
</script> 

Это в заголовке документа. я сделал боковую панель, содержащими ссылки:

<li><a href=<?php echo "\"/".INDEX."/sales/\"";?> onclick="loader(sales, this.href)">Sales</a> 
    <ul> 
     <li><a href=<?php echo "\"/".INDEX."/sales/move\"";?> onclick="loader(sales, this.href)">Movement</a></li> 
     <li><a href=<?php echo "\"/".INDEX."/sales/cancel\"";?> onclick="loader(sales, this.href)">Cancel</a></li> 
     <li><a href=<?php echo "\"/".INDEX."/sales/add\"";?> onclick="loader(sales, this.href)">Add new HW</a></li> 
    </ul> 
</li> 

У меня есть целевой фрейм как:

<div id='content' style='margin-left: 170px; height: 700px; width: 800px; overflow: auto;'> 
    <iframe id='display' src=<?php echo "\"/".INDEX."/main/home\"";?> style='height: 650px; width: 800px;'></iframe> 
</div> 

Это работает, когда я нажимаю ссылку верхнего уровня, в продаже в моем случае, releveant документ получает отображаемую в целевом кадре, но как только я перейду к ссылкам подменю, его загрузится на всю страницу. Пожалуйста помоги!!!

ответ

0

Похоже, вы пытаетесь сделать что-то похожее на то, что уже делает AJAX. Вы можете настроить свой класс загрузчика для использования функции загрузки jQuery. Это также позволит вам избавиться от iframe, если вы хотите, и просто загрузить страницу в div. По-моему, загрузка его в div будет лучшим способом пойти в любом случае.

Вы должны ссылаться на JQuery на ваших страницах заголовок:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

Тогда вы новый загрузчик будет выглядеть примерно так:

function Loader(page) { 
    $('#display').load(page + '.html'); 
} 

Это загрузит содержимое отдельной HTML-страницу в div дисплея на основе имени страницы, которое вы передаете. Я рекомендую сделать еще некоторое чтение о том, как использовать jQuery и метод загрузки AJAX. http://api.jquery.com/load/

0

Я не уверен, что вы хотите делать, но в соответствии с тем, что я понял из кода, вы хотите отображать разные iFrames при нажатии на разные ссылки.

Итак, если вы хотите сделать это с помощью javascript, все данные должны быть загружены в браузер, а затем вы можете скрыть или отобразить iframe в зависимости от кликов. Итак, вы можете иметь разные iframe для разных ссылок, а затем показывать или скрывать их соответственно.

В качестве альтернативы вы можете перейти на AJAX и позвонить на сервер, чтобы отправить данные для другой ссылки.

+0

Нет одинакового кадра, который будет загружен при нажатии ссылок. [link] (http://javascript.info/tutorial/frames-and-iframes#html5-seamless-and-sandbox-attributes) Кажется, что формы не разрешены в iframe, у меня есть форма в ссылках. :( –

+0

ну, все-таки не получится, но ты можешь, конечно, помочь http://blog.formstack.com/2012/embed-an-iframe/ – codeomnitrix