2014-08-28 2 views
0

Надеюсь, это не проблема для всех вас экспертов, но я не могу найти ответ. Я хочу щелкнуть элемент на странице А, который приведет меня к странице B и автоматически выполнит функцию (здесь она называется showGrp), определенная на странице B. На странице A я хочу щелкнуть что-то вроде этого (очевидно, т работу, но я думаю, что он передает идею):Используйте JavaScript чтобы перейти на страницу и автоматически выполнять функцию на этой странице.

<span onclick="location.assign('http://happy.com/pageB.htm').('showGrp(); return false;')"> 
    <h2>Search Topics</h2> 
</span>` 
+2

Невозможно повлиять на недавно загруженную страницу со старой страницы. Если вы можете управлять pageB, вы можете добавить строку поиска к URL-адресу, а затем проверить ее на этой новой странице. Также обратите внимание, что 'h2' в [' span'] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span) является недопустимым HTML. – Teemu

+0

Я не совсем уверен, что вы действительно предлагаете. – RevanProdigalKnight

+0

Спасибо, всем! К сожалению, я не контролирую страницу B. Тогда было бы просто просто передать значение URL. – octopusCrime

ответ

0

Я бы просто поставить код, который вы хотите запустить в функции окна OnLoad на странице Б. Я думаю, что будет делать то, что вы хотите.

window.onload = function() { 
    showGrp(); 
}; 

Просмотреть описание нагрузчика на Mozilla Developers Network.

2

Короткий ответ: нет способа сделать это. Вы не можете сказать, что новая страница запускает функцию через старую страницу

Длинный ответ: Вы можете, однако, настроить страницу B, чтобы он знал, что если URL-адрес запроса содержит определенный аргумент в его GET данных, он запустит showGrp. то есть:

  1. собирается http://happy.com/pageB.htm не будет делать ничего
  2. собирается http://happy.com/pageB.htm?showGrp=1 будет работать функцию

Вы можете использовать this function так:

// put this wherever you want to run this - most probably when the page is loaded 
if (getParameterByName('showGrp')) { 
    showGrp(); 
} 
0

страница А должна выглядеть следующим образом:

<div id = "yourclickobject" onclick="pageB.html"> Some random text </div> 

Page B:

<head> 
<script> 
var myFunction = function(){ 

    alert("hello world"); 
} 

myFunction(); 
</script> 
</head> 

ли эта помощь? Как только вы перейдете на страницу B myFunction. Все, что вам нужно сделать, это положить его в голову

1

Вы могли бы сделать что-то вроде этого:

Страница A:

<html> 
    <body> 
     <a href="pageB.html?f=showGrp"> 
      <h2>Search Topics</h2> 
     </a> 
    </body> 
</html> 

Страница B:

<html> 
    <head> 
     <script type="text/javascript"> 
      function getQueryVariable(variable) { 
       var query = window.location.search.substring(1); 
       var vars = query.split('&'); 
       for (var i = 0; i < vars.length; i++) { 
        var pair = vars[i].split('='); 
        if (decodeURIComponent(pair[0]) == variable) { 
         return decodeURIComponent(pair[1]); 
        } 
       } 
      } 

      var init = { 
        showGrp: function() { 
         console.log("Hello world!"); 
        }, 
        otherFunc: function() { 
         console.log("Lalala!"); 
        } 
       }; 

      init[getQueryVariable("f")](); 
     </script> 
    </head> 
</html> 

Делая это, вы сможете для выполнения любой функции, которую вы хотите просто передать это имя в качестве аргумента URL страницы.