Загрузить javascript для ввода страницы; затем установите два css-идентификатора для отображения: none’ и «display:inline», переключая два <a доступные параметры ссылки href

#javascript #css #html

#javascript #css #HTML

Вопрос:

Пожалуйста, я разбираюсь в javascript. Я был бы признателен за помощь при запуске при загрузке страницы, возвращая значение или строку для того, какой конечный локальный путь он получил, чтобы указать остальной части скрипта либо / или результат (для жестко запрограммированного сравнения); и, учитывая результаты, переключите два идентификатора css, которыесоответственно, один идентификатор будет содержать «display:none», а другой — «display:inline», чтобы управлять тем, как нижняя часть страницы связана с href с выбором дизайна навигации, определяемым тем, какая из двух разных страниц меню является ее фактическим исходным родителем. Упомянутые идентификаторы css изначально будут заданы локально в разделе «стиль» дочерней страницы нового содержимого, как, скажем:

 #MyDisplayOnOff-0 {display:inline;}
and
#MyDisplayOnOff-1 {display:none;}
 

Страница отправки href будет одним из двух меню, например, упрощенным:
«./MenuONE.html » или «./MenuONE.html#Top» или «./MenuONE.html#Bottom»
ИЛИ
«./SECONDMenu.html » или «./SECONDMenu.html#Сверху» или «./SECONDMenu.html#Снизу»

[фактический пример для ./MenuONE.html ]:

http://gladheart.royalwebhosting.net/Menu — Of Lila and the Void.html

http://gladheart.royalwebhosting.net/Menu — Of Lila and the Void.html#Bottom

http://gladheart.royalwebhosting.net/Menu — Of Lila and the Void.html#Top

До сих пор, когда идентичный контент был выбран в одном из двух разных меню, я создавал две html-страницы (с немного измененным названием), содержащие один и тот же контент, но с разными навигационными ссылками внизу. Я бы предпочел использовать одну html-страницу, жестко закодированную с двумя альтернативными ссылками, а затем с результатом первоначального возврата javascript «sending page», соответствующим образом заполните два идентификатора css: один как «display: none», а другой как «display: inline», чтобыдля отображения только одного из двух

Вот два реальных примера одного и того же содержимого на отдельных [с немного разными именами] html-страницах, каждая из которых имеет разную структуру нижних ссылок, что обусловлено дизайном, поскольку каждая вызывается из отдельного меню.

http://gladheart.royalwebhosting.net/Poetry — Time and i.html
http://gladheart.royalwebhosting.net/Poetry — Time and i-L.html

Что, я чувствую, может понадобиться в javascript, так это:

<[псевдо-]скрипт>

 query to determine [get.previous] 'sending-page'


take the string query as returned above [which would be
either eg. 
http://gladheart.royalwebhosting.net/MenuONE.html]
or
http://gladheart.royalwebhosting.net/MenuONE.html]
and parse from right to left over to the  first '/' 
[forward slash] and then discard that forward slash
and all else to the left of it; OR, as an option, just
check the whole string for any one of the six targeted
strings contained in the 'if' conditional statements below.
[[Actually here, a simplified two word word search for either
"MenuONE" or "SECONDMenu" being contained in the string being
evaluated would return the needed result to proceed.]]


if 'sending-page' equal
    "MenuONE.html"
    or
    "MenuONE.html#Top"
    or
    "MenuONE.html#Bottom"
do nothing


if 'sending-page' equal
    "SecondMenu.html"
    or
    "SecondMenu.html#Top"
    or
    "SecondMenu.html#Bottom"
do change
    #MyDisplayOnOff-0 {display:inline;} instead to #MyDisplayOnOff-0 {display:none;}
    and
    #MyDisplayOnOff-1 {display:none;} instead to #MyDisplayOnOff-1 {display:inline; 
 

Меня попросили добавить используемый html. Тело содержимого html (стихотворения) имеет ссылки внизу, например;

 <div id="BottomRightpNAV">
    <a href="./Menu - Rivers of Mind and Heart.html">Rivers of Mind and Heart</a>
</div>  
 

Я намерен добавить вторую ссылку; и с добавленными идентификаторами для обоих для переключения, какой из них отображать. Они (идентификаторы) будут изначально установлены с помощью css в локальном разделе «стиль» как:

 #MyDisplayOnOff-0 {display:inline;}
and
#MyDisplayOnOff-1 {display:none;}
 

В примере ссылки (один комментарий выше стиля css ‘, показанного в обсуждении непосредственно выше), тогда в произвольном примере была бы выбрана вторая другая ссылка. Одновременно будет отображаться только один. Каждая ссылка с включением идентификатора css [эффективно позволяющего включать или выключать одну или другую], будет отображаться вместе жестко, как показано ниже.

 <div id="BottomRightpNAV">
    <a id="MyDisplayOnOff-0" href="./Menu - Rivers of Mind and Heart.html">Rivers of Mind and Heart</a>

    <a id="MyDisplayOnOff-1" href="./Menu - Of Lila and the Void.html">Of Lila and the Void</a>
</div>
 

Таким образом, в общей сложности в зависимости от того, с какой страницы (в данном случае одного из двух меню) пользователь вошел, он будет отображать по мере необходимости одну из двух доступных ссылок и скрывать [‘display:none;’] другую ссылку.

Комментарии:

1. Я изо всех сил пытаюсь понять, о чем спрашивают. Я также обычно не посещаю исходные веб-сайты, поскольку 1. ссылки умирают, 2. что, если это вредоносно? и 3. это часто делает проблему более запутанной. Не могли бы вы создать фрагмент кода, содержащий хотя бы HTML?

2. Спасибо @stealththeninja. Извините, если я неясен. Я добавил <[псевдо-]скрипт>, необходимый в javascript после первой публикации для ясности. HTML, который я использую, — это content (стихотворение), а затем в нижней части страницы, локальный путь href, такой как <div id=»BottomRightpNAV»> <a href=» ./Menu — Rivers of Mind and Heart.html «> Реки разума и сердца</a> </div>

3. Итак… Вы хотите либо показать, либо скрыть элемент в зависимости от того, какой URL-адрес страницы?

4. CodeF0x, спасибо. Да, если предполагается, что URL-адрес, на который ссылаются, является URL-адресом страницы, на ссылку которой был нажат, а затем сгенерирован переход на новую страницу содержимого, на новой странице содержимого мы хотим выполнить запрос onload относительно этого URL-адреса и скрыть или показать нужный элемент [ссылка]в зависимости от того, был ли это URL-a или URL-b.

Ответ №1:

Если я правильно понимаю, вы могли бы попробовать что-то вроде этого:

Сделайте так, чтобы каждая ссылка включала параметр запроса:

 <a href="something.com?redictedFrom=page1">my link's text</a>
<a href="something.com?redictedFrom=page2">my link's text</a>
 

Параметр запроса — это то, что следует после ‘?‘ в ссылке, и он действует как пользовательский атрибут HTML :

  • рекомендуется, чтобы это была пара ключ-значение
  • у него может быть любое имя — пример redictedFrom, но это может быть что угодно
  • и любое значение — хотя изначально оно будет проанализировано как строка, поскольку сам URL-адрес является строкой.
  • Затем на странице, на которую она перенаправляется, вы можете сделать что-то вроде:

     // get the page's url and check it
    var query = window.location.search // will give you the query string, in this example it will be **redictedFrom=page1**
    // then you can then search the string to see if contains what you needed
    if (query.indexOf("redictedFrom=page1") > -1) { /* do magic */ }
     

    Вы также можете использовать window .location.search.split(‘amp;’), чтобы получить отдельные пары ключ-значение, а также разделить их с помощью string.split(‘=’) . Но это выходит за рамки непосредственного вопроса.

    Комментарии:

    1. Спасибо @Andu Andrici, я постараюсь набраться скорости и включить ваши мысли и знания в новый день. Я очень благодарен за ваш вклад.

    2. Рад, что это помогло. Дайте мне знать, если это сработает. Удачи!

    3. Спасибо @Andu Andrici, я обработал ваш превосходный код до такой степени, что вернул строку вашего запроса ?redictedFrom=zpage1 в окно предупреждения на странице 2. Прежде чем продолжить, пожалуйста, что в моем случае было бы наиболее функционально простым по ряду причин [включая шесть страниц меню, упрощенных как page1], вместо перекодирования индивидуально необходимых hrefs на page1, было бы иметь page1 (в данном случае) при загрузке, просто сделайте делодобавив ?redictedFrom=zpage1 к любому содержимому <href’d с этой страницы . Возможно ли это?

    4. Слава @Andu Andrici. Начиная с предоставленного вами кода, я опубликовал в своем рабочем и ситуационно значимом окончательном ответе. Настройка вперед, возможно ли, чтобы к начальным страницам добавлялся теперь индивидуально закодированный «параметр запроса» в формате href, вместо этого, направляя любой href, щелкнутый на странице, добавлял «параметр запроса» (глобально для страницы). Еще лучше в моем случае было бы указать, что добавление параметра запроса будет применимо в определенном разделе [nav tag section или конкретном (например) [разделе, обозначенном тегом статьи. Возможен ли какой-либо из этих трех вариантов?

    Ответ №2:

    Решение было инициировано благодаря отличным советам и примеру кода, предложенным @Andu Andrici. Это было достигнуто путем «нажатия» информации из родительского меню PageA или PageB, чтобы определить, какая страница открыла страницу общего дочернего содержимого. Попытка получить исходную страницу из истории с ее ограничениями безопасности или (за пределами файлов cookie) невозможность (опять же из-за безопасности) записи в файлы css или скриптов сделала это идеальным и элегантным решением. На дочерней странице содержимого, общей для обеих страниц меню, это был javascript с инструкциями «if»: и, таким образом, неизмененный контент имел уникальные и отличительные ссылки, которые затем произвольно размещались внизу.

    zMenuA.html упрощается ниже:

     <!doctype html>
    <html>
    <head>
    <title>zMenuA.html [Acknowledgement @Andu Andrici]</title>
    </head>
    <body>
    
    <a href="./zSameTarget.html?redictedFrom=zMenuA">zMenuA.html invoking zSameTarget.html</a>
    
    </body>
    </html>
     

    zMenuB.html ссылки на один и тот же контент практически идентичны и упрощены ниже:

     <!doctype html>
    <html>
    <head>
    <title>zMenuB.html [Acknowledgement @Andu Andrici]</title>
    </head>
    <body>
    
    <a href="./zSameTarget.html?redictedFrom=zMenuB">zMenuB.html invoking zSameTarget.html</a>
    
    </body>
    </html>
     

    ‘zSameTarget.html «, страница содержимого с ее навигационной ссылкой «вкл / выкл — либо / или», устанавливаемой путем оценки того, какая страница была ее родительской, упрощена ниже:

     <!doctype html>
    <html>
    <head>
    <title>zSameTarget.html [Acknowledgement @Andu Andrici]</title>
    <style></style>
    
    <script type="text/javascript">
        var MyAppendedUrlMarker = window.location.search
    
        if (MyAppendedUrlMarker === '?redictedFrom=zMenuA') {
        onload = function () {
        document.head.insertAdjacentHTML('beforeend', "<link href='addOtherCSSstyling.css' type='text/css' rel='stylesheet'/>");
    
            var MyElement = 
    document.getElementById("MyDisplayOnOff0").style.display = "inline";
            var MyElement = 
    document.getElementById("MyDisplayOnOff1").style.display = "none";
            }
        }
    
        if (MyAppendedUrlMarker === '?redictedFrom=zMenuB') { 
        onload = function () {
            var MyElement = 
    document.getElementById("MyDisplayOnOff0").style.display = "none";
            var MyElement = 
    document.getElementById("MyDisplayOnOff1").style.display = "inline";
            }        
        }
    </script>
    
    </head>
    
    <body>
    
    <p style="white-space:pre-wrap;">
    This is the child page 'zSameTarget.html' with this content showing 
    the same; BUT, at the bottom, with different content [a navigation link] 
    being visible and active, solely dictated by which parent page invoked 
    this page. To whit, whether in opening this page, an [a href ....] was 
    clicked on 'zMenuA.html', or if it came from a click originating from 
    'zMenuB.html' instead. NOTE: running this page alone will show two links. 
    It is meant to show only one link. Therefore, first open 'zMenuA.html' 
    or 'zMenuB.html' and then link to this page from either one of them. As
    indicated, depending on the page chosen, one will find it has produced a 
    different content [link in this case] visible at the bottom. As well, I 
    have added a linked 'myFile.css' to modify the styling elsewhere when
    'zMenuA.html' is identified as the parent in the 'if' statements.</p><br/>
    
        <div>
    <a id="MyDisplayOnOff0" href="./Menu - Rivers of Mind and Heart.html">Rivers of Mind and Heart</a> 
    <br/>
    <a id="MyDisplayOnOff1" href="./Menu - Of Lila and the Void.html">Of Lila and the Void</a> 
        </div>
    
    </body>
    </html>