2012-02-12 3 views
1

есть простой способ открыть текст на веб-странице, используя ссылку без изменения веб-адреса или с помощью iframe? возможно, с функцией onclick? im довольно новый для нового кода, поэтому не уверен, с чего начать .. ive приложил фотографию того, что exaccty im после, довольно просто. im уже использует iframe в качестве основного интерфейса, поэтому другой может стать беспорядочным с точки зрения меню по умолчанию. должно быть простое исправление .. любая помощь будет действительно оценена. спасибо, Аарон

раскрытие текста на веб-странице по ссылке

enter image description here

ответ

2

Поместите текст, который вы хотите, чтобы скрыть до щелчка внутри скрытый контейнер, например:

<div id="HiddenTextContainer" style="display: none;"> 
    Hello, I will become visible when you click something else 
</div> 

Следующий шаг добавить, что JavaScript код страницы, например, внутри <head> секции:

function ShowHiddenText() { 
    document.getElementById("HiddenTextContainer").style.display = "block"; 
} 

И, наконец, есть такой код:

<span onclick="ShowHiddenText();">click me to show hidden text</span> 

Live test case.

Edit: в случае, если у вас есть более чем один элемент, чтобы показать, вы можете использовать rel атрибут:

<span rel="HiddenTextContainer2">click me to show second hidden text</span><br /> 

Затем с чистым JavaScript перебрать все элементы с этим атрибутом и назначить их onclick программно:

window.onload = function() { 
    var elements = document.getElementsByTagName("span"); 
    for (var i = 0; i < elements.length; i++) { 
     var element = elements[i]; 
     var id = element.getAttribute("rel") || ""; 
     if (id.length > 0) { 
      element.onclick = function() { 
       var oToShow = document.getElementById(this.getAttribute("rel")); 
       if (oToShow) 
        oToShow.style.display = "block"; 
      }; 
     } 
    } 
}; 

при нажатии будет отображаться элемент с идентификатором так же, как значения rel.

Updated fiddle.

Редактировать: показать его в одном контейнере, первый такой контейнер:

<div id="HiddenTextContainer"></div> 

Нет необходимости, чтобы он спрятан, так как это изначально пустой, а затем изменить код:

window.onload = function() { 
    var elements = document.getElementsByTagName("span"); 
    for (var i = 0; i < elements.length; i++) { 
     var element = elements[i]; 
     var id = element.getAttribute("rel") || ""; 
     if (id.length > 0) { 
      element.onclick = function() { 
       var oToShow = document.getElementById(this.getAttribute("rel")); 
       if (oToShow) 
        document.getElementById("HiddenTextContainer").innerHTML = oToShow.innerHTML; 
      }; 
     } 
    } 
}; 

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

Updated jsFiddle.

+0

, похоже, не работает в сафари? –

+0

У вас нет Safari, но трудно поверить, что такой базовый код не будет работать.Вы получаете ошибку JS? Можете ли вы протестировать другой браузер? –

+0

yep работает в firefox fine, weird –

0

У вас есть 2 варианта для этого. Первый - предварительно загрузить все на странице, а затем установить свойство visible, когда вы нажимаете ссылку. Второй - загрузить его, используя что-то вроде AJAX, а затем показать его так же, как описано выше.

Чтобы показать эти вещи выглядят в JQuery: http://jquery.com/

Хороший учебник для второго способа здесь: http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/

+0

получил буквально несколько учебных пособий. jquery потрясающе. ура! –

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