是否可以在另一个页面上与“目标”属性运行脚本建立链接?

时间:2011-07-26 15:10:09

标签: javascript html hyperlink

* 更新:最终我决定由于它对安全性造成的问题而无法完成我想要的东西。 Kalle的答案提供了一个最接近我想要完成的解决方案。 为了解决我的问题,我在两个页面上都创建了脚本,并将使用一种通过服务器路由的推送通知,以便它们进行通信。 谢谢您的帮助!! *

我有两页。两个窗口都已独立存在。第二页有一个在JS中声明的函数。

我希望能够通过单击第一个窗口中的链接来调用窗口2中的函数。

第1页:

<html>
<head>
<title>This is a title!</title>
</head>
<body style="background: lightblue">

<a href="#" target="my_target" onClick="clicked()">Click Me!</a>

</body>

第2页:

<html>
<head>
<META HTTP-EQUIV="Window-target" CONTENT="my_target" />
<title>This is a title!</title>
<script type=text/javascript>
    function clicked() {
    alert('test');
    }

</script>
</head>
<body style="background: lightblue">



</body>

4 个答案:

答案 0 :(得分:2)

由于它位于同一个域中,您可以使其工作,但必须改变您的方式。

首先,您必须使用此语法而不是新标签在弹出窗口中打开它:

newwindow=window.open(url,'name','height=200,width=150');

然后你可以在调用弹出窗口后调用newwindow.clicked()

更新

刚做了一个快速测试,这将在新标签中打开它。 (对不起,我使用open功能已经有一段时间了。

newwindow=window.open(url,'name');

还注意到你应该等待弹出窗口加载。所以在我的例子中,它看起来像这样(使用jQuery):

var newwindow = window.open('http://www.tylerbiscoe.com/vb/new.html');

$(newwindow).load(function(){
    newwindow.clicked();
});

答案 1 :(得分:1)

好的,全新的答案。我希望这就是你在想的。但是,当您从第1页打开第2页时,基本上,第1页将知道第2页是谁..

在线示例:http://kopli.pri.ee/stackoverflow/6832271.php

Page 1

<html>
<head>
    <title>Page 1</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <style>
        .ajaxlink {color: blue; cursor: pointer; border-bottom: 1px dotted blue;}
    </style>
</head>
<body>

    <span id="open_page_2" class="ajaxlink">Open new window</span>

    <br>
    <br>

    <a href="#" target="my_target">Click Me!</a>

    <script>
    $('#open_page_2').click(function(){
        child = window.open('test2.php','page_2','width=600,height=600');
    });


    $('a[target=my_target]').click(function () {
        child.SecondPageFunction();
        return false;
    });
    </script>
</body>
</html>

第2页

<html>
<head>
    <title>Page 2</title>
</head>
<body>

    <h1>Your seeing page 2!</h1>

    <script>
        function SecondPageFunction () {
            alert('Second page action got triggered!');
        }
    </script>
</body>
</html>

答案 2 :(得分:0)

该脚本必须是您在新窗口中打开的页面的一部分。如果允许的话,你是完全正确的,这是一个安全漏洞。

答案 3 :(得分:0)

你可以添加一些查询字符串参数,这些参数可以在你打开的页面中通过javascript获取onload,如果查询字符串arg存在,则调用你的函数。