Как вставить URL / переменную в OnClick? - PullRequest
1 голос
/ 14 сентября 2009

это не может быть слишком сложным, но это сбивает меня с толку - я хотел бы передать переменную через URL (www.site.com/index.html?var=whever.htm) и использовать переменную внутри клика функция, так что кнопка onclick использует переменную в качестве URL-адреса для перехода к ..onclick.

Я пытаюсь сделать это вместо кнопки истории, поскольку кнопка находится в рамке, и щелчки по другим рамкам изменяют историю.

Я пытался <input value="Go Back" onclick="parent.location(var)" type="button">, но, очевидно, мне не хватает чего-то о том, как заставить JavaScript распознавать эту переменную.

Спасибо за любую помощь.

Ответы [ 4 ]

1 голос
/ 15 сентября 2009

Если вы не используете

parent.location = var?

1 голос
/ 14 сентября 2009

Вам нужно использовать document.location.search для доступа к строке запроса. Затем вам нужно проанализировать эту строку на предмет значения вашей переменной.

В вашем обработчике onclick вы должны установить document.location на значение вашей переменной.

Я бы предложил добавить ваш обработчик кликов при загрузке страницы, а не вставлять его в ваш HTML-элемент.

window.onload = function () {
    document.getElementById("go").onclick = function () {
        var tokens = /\bvar=([^&]+)/.exec(document.location.search);

        if (tokens) {
            document.location = decodeURIComponent(tokens[1]);
        }
    };
};

Редактировать: Для более общего механизма разбора строки запроса попробуйте это: http://gist.github.com/143101

0 голосов
/ 15 сентября 2009

Доступ к переменной с URL: Прежде всего, нет автоматического способа доступа к параметрам URL. Поэтому нам нужно разделить URL-адрес на 3 группы.

http://www.someurl.com/doSomeThing?one=1&two=2

нам нужно получить одну = 1 и две = 2 части. Мы можем получить доступ к этому с помощью регулярного выражения.

  var regexString = "[\\?&]var=([^&#]*)";
  var regex = new RegExp( regexString );
  var results = regex.exec( window.location.href );

Если результатом является массив, и вашим значением будет первый элемент.

window.location=results[1];

С уважением, Джишну

0 голосов
/ 14 сентября 2009

Вы пробовали что-то вроде

<script type="text/javascript">
   var url = "http://gohere.com";
</script>
<input value="Go Back" onclick="document.location(url)" type="button" />

У вас также может быть общая вызываемая функция с уже заданным положением «назад», например

<script type="text/javascript">
  function goBack(url){
    document.location(url);
  }
</script>

В этом случае вам нужно как-то установить переменную url. Идея та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...