使用JavaScript转到某个页面并在该页面上自动执行某个函数

Use JavaScript to go to a page and automatically do a function on that page

本文关键字:执行 函数 JavaScript 使用      更新时间:2023-09-26

希望这对所有专家来说都是一件轻而易举的事,但我找不到答案。我想点击页面A上的一个元素,它会把我带到页面B,并自动执行页面B上定义的功能(这里称为showGrp)。在页面A上,我想点击这样的东西(显然,它不起作用,但我认为它传达了这个想法):

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

简短回答:没有办法做到这一点。你不能告诉新页面通过旧页面运行功能

长答案:但是,您可以设置页面B,以便它知道如果请求URL的GET数据中包含某个参数,它将运行showGrp。即:

  1. http://happy.com/pageB.htm不会有任何作用
  2. 转到http://happy.com/pageB.htm?showGrp=1将运行函数

你可以这样使用这个功能:

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

您可以这样做:

PageA:

<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>

通过这样做,您可以执行任何您想要的函数,只需将其名称作为参数传递给pageB的URL。

我只想把你想在窗口onload函数中运行的代码放在B页上。我想这会满足你的要求。

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

请参阅Mozilla开发者网络上的onload描述。

页面A应该看起来像:

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

页码B:

<head>
<script>
var myFunction = function(){
    alert("hello world");
}
myFunction();
</script>
</head>

这有帮助吗?一旦您转到B页,就会调用myFunction。你所需要做的就是把它放在的头上