www.webdeveloper.com
Results 1 to 9 of 9

Thread: Using javascript variable in html code

  1. #1
    Join Date
    Dec 2005
    Posts
    4

    Using javascript variable in html code

    I have what I think is probably a pretty basic query, but I cannot seem to find the answer. Basically, I have a link in my webpage that I want to be able to change slightly depending upon which webpage the viewer has just come from.
    So, if my user has come from ./british.1.html?1, I want the link, when clicked, to send them back to ./british.1.html
    However, if they have come from ./british.2.html?2, I want the link to send them back to ./british.2.html
    And so on...

    The way I have been approaching the problem is to create a javascript variable that contains the name of the page that they have come from. The code extract is below. However, I do not know how to then use that javascript variable in the html body. You will see my area of uncertainty in square brackets[] below. Many thanks for any suggestions of how to deal with this.


    <head>
    <script type="text/javascript">

    var referringPageNumber = window.location.search.substring(1);
    var referringPage = "./british."+ referringPageNumber+".html";

    </script>
    </head>

    <body>

    <a target="_self" href= [ referringPage ] > BRITISH</a>

    </body>

  2. #2
    Join Date
    Oct 2005
    Posts
    481
    Why wouldn't you just use:

    <a href="javascript: history.go(-1)">Back</a>

  3. #3
    Join Date
    Dec 2005
    Posts
    4
    Thanks for your reply. Your solution would be a good one, but I failed to mention that, the very first time the user comes to my webpage, if they click on the link, I want them to be sent to ./british.1.html (even though that is not where they just came from). So, my slightly longer bit of javascript is actually:

    var referringPageNumber = window.location.search.substring(1);
    if (referringPageNumber == false) {
    referringPageNumber = 1;
    }
    var referringPage = "./british."+ referringPageNumber+".html";


    Any ideas now? Many thanks
    Last edited by iain33; 12-03-2005 at 08:04 AM.

  4. #4
    Join Date
    Mar 2004
    Posts
    106
    You need to use javascript to dynamically update the link's href attribute, like this:

    instead of:
    <a target="_self" href= [ referringPage ] > BRITISH</a>

    give the link a name:
    <a target="_self" name="link1" href="def_value"> BRITISH</a>

    Then in javascript, access the link via the document.links[] array and it's name attribute, and update the href attribute, with the contents of the referringPage variable, like this:

    document.links["link1"].href = referringPage;

    Or, give the link an id attribute:
    <a target="_self" id="link1" href="def_value"> BRITISH</a>

    Then in JS do:
    document.getElementById("link1").href = referingPage;

    Either method should update the contents of the href attribute, to the new value.

    see http://www.w3schools.com/htmldom/dom_obj_anchor.asp

    see http://www.w3schools.com/htmldom/dom_obj_document.asp

    Jabez
    Last edited by jabez; 12-04-2005 at 06:55 PM. Reason: changed dom syntax

  5. #5
    Join Date
    Dec 2005
    Posts
    4
    Thanks very much for your reply. Unfortunately I cannot get your methods to work. Neither seems to update the link. The page just keeps using the original default value I specify in the html section...

    I am not sure that I understand why your methods would work. I can imagine a function call to the javascript updating the link, but I do not understand why the link would update each time I leave the page and come back again...

    Do you have any further thoughts? Many thanks.

  6. #6
    Join Date
    Mar 2004
    Posts
    106
    Are you trying to pass a variable from client-side Javascript, to the server html code?

    If you are trying to serve-up different content for the same page request, depending on where the original page request comes from, then you may need to use a server-sided scripting language, such as PHP.

    PHP holds the filename of the requesting file in the following variables:

    _SERVER["SCRIPT_FILENAME"]

    _SERVER["REQUEST_URI"]

    _SERVER["SCRIPT_NAME"]

    You can examine the content in any of those variables, then return different body content in your html document, depending on the above variable content.

    You could use Javascript, but you will still need a server-sided script to process what Javascript sends to the server.

    I might be wrong, but I do not think you can serve a different file, in place of the one requested by the browser, unless you use something like redirecting the page request.

    I hope this answers your question.
    Last edited by jabez; 12-11-2005 at 03:44 PM.

  7. #7
    Join Date
    Dec 2005
    Posts
    4
    Many thanks for again taking the time to respond in detail to my problem! However, a friend of mine has today suggested the following solution which seems to work perfectly. I simply replace the link in the HTML section of my code with the following:

    <script language="JavaScript">
    document.write('<a target="_self" href="' + referringPage + '"> BRITISH</a>');
    </script>

  8. #8
    Join Date
    Dec 2005
    Posts
    1

  9. #9
    Join Date
    Mar 2005
    Location
    Sydney, Australia
    Posts
    7,974
    The referring page field can be blank if your visitor has disabled it.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles