IE:使用window.open(url)时如何获取弹出窗口的打开窗口

时间:2010-09-23 00:59:10

标签: javascript asp.net

我们正在运行点击通话服务,我的想法基本上是这样的:网站在他们的页面上有一个链接,当点击链接时,我们的服务器上托管了一个网页(说它是popup.aspx)弹出窗口,用户可以输入自己的电话号码,点击“给我打电话”按钮让网站给他打电话。在按钮单击事件中,我想获取Request.UrlReferrer,然后查询数据库以获取网站的电话。但是在IE中,Request.UrlReferrer为null(firefox还可以,还没测试chrome),我的问题是如何在IE中打开窗口'url?

我们将popup.aspx放在我们的服务器上,因为

  1. 我们的客户网站不强制使用asp.net。

  2. 我们可以控制弹出窗口中的内容,如果我们将弹出窗口放在我们的合作伙伴一边,如果我们有100个合作伙伴,我们就可以改变页面的设计,我们会通知他们每个人改变这一点,改变......

  3. 我们可以实现一个静态系统来了解一天的弹出窗口,哪个网站最受欢迎等等

1 个答案:

答案 0 :(得分:1)

您是否尝试过window.opener.location.href(在javascript中)?

您还可以使用开启者在javascript中调用pageMethod以从您的(服务器端查询)中取回您的CSS并将其应用于您在javascript中的页面。

Link

Popup.aspx

 <form id="form1" runat="server">
<asp:ScriptManager EnablePageMethods="true" runat="server"></asp:ScriptManager>
<div>

<script>
    function call() {
        var location = window.opener.location.href;       
        PageMethods.GetPhoneNumber(location, clientcall);
    }

    function clientcall(phone){
        alert(phone);
    }

</script>
<a href="javascript:call();">Call</a>
</div>
</form>

Popup.aspx.cs

使用System; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.UI; 使用System.Web.UI.WebControls; 使用System.Web.Services;

public partial class Popup : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public static string GetPhoneNumber(string referer)
    {

//在此处输入您的代码来调用您的数据库             返回“888-888-888”;         }     }

致电页面

    <html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
<script>
    function opening() {
        window.open("Popup.aspx","mywindow", "status=1,toolbar=1");
    }
</script>
<a href="#" onclick="opening()">Ouvrir</a>

</body>
</html>