在ActionScript中调整浏览器窗口的大小

时间:2012-06-02 06:03:05

标签: flex actionscript

在我的Flex页面中,我有一个导航到不同网页的链接,我想控制该子网页的大小。为了调整大小,我在ActionScript中使用JavaScript命令。这是ActionScript代码:

private function openLinkEvent():void{
    var baseUrl:String ="https://localhost:8080/someWebsite?customerName="customer.custName;

    var jscommand:String ="window.open(baseUrl,'win','height=280,width=500,toolbar=no,scrollbars=no,resizable=no');";       
    var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);"); 
    navigateToURL(url, "_self");
}

我在这段代码中有2个问题:

  1. 如果我以上述方式执行此操作,则新窗口无法打开,Flex页面显示错误“baseUrl is undefined”。为什么我无法为我的网址传递变量而不是直接在window.open方法中传递网址?

  2. 如果我直接在window.open中传递了我的baseURL(“https:// localhost:8080 / someWebsite?customerName =”customer.custName;)的值,则将customerName的值作为customer.custName虽然它应该取得会话中保存的客户的实际价值。

  3. 只是澄清一下,当我按照以下方式传递baseUrl时,我的应用程序工作正常。

    navigateToURL(new URLRequest(baseUrl)) 
    

    但是,如果我想重新调整浏览器窗口的大小,则上面的命令是不够的。这就是我使用与ActionScript集成的JS命令的原因。

1 个答案:

答案 0 :(得分:3)

  

如果我以上述方式进行,新窗口不会打开   flex页面显示错误“baseUrl is undefined”。为什么我不能   为我的网址传递变量而不是直接传递网址   window.open方法?

嗯,baseUrl定义了变量,但是在创建jsCommand时没有使用。您正在使用名为baseUrl的字符串;不是varibale。

这就是你所拥有的:

var jscommand:String ="window.open(baseUrl,'win','height=280,width=500,toolbar=no,scrollbars=no,resizable=no');";       

这可能是你想要的:

var jscommand:String ="window.open('" + baseUrl + "','win','height=280,width=500,toolbar=no,scrollbars=no,resizable=no');";       

使用字符串连接创建jscommand字符串。所以jscommand的结果值是这样的:

window.open('https://localhost:8080/someWebsite?customerName=something','win','height=280,width=500,toolbar=no,scrollbars=no,resizable=no');

而不是:

window.open(baseUrl,'win','height=280,width=500,toolbar=no,scrollbars=no,resizable=no');

希望这是有道理的。

  

如果我直接传递了我的价值   基本URL( “HTTPS://本地主机:8080 / someWebsite客户名称=?” customer.custName)   在window.open中,它将customerName的值视为   customer.custName虽然它应该取客户的实际价值   保存在会话中。

好吧,在创建baseURL时,你错过了连接运算符,这很奇怪。在字符串和customer.custName之间添加+:

var baseUrl:String ="https://localhost:8080/someWebsite?customerName=" + customer.custName;

我很惊讶该行没有给出编译时错误。但是,由于您尚未详细说明客户的类型,以及custName的含义,因此很难确定这里发生的事情。我假设customer是您构建的自定义类的实例,而custName是其上的字符串属性。