0

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

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");
}

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

  1. 如果我按照上述方式进行操作,新窗口不会打开,Flex 页面会显示错误“baseUrl is undefined”。为什么我不能为我的 url 传递变量,而不是直接在 window.open 方法中传递 url?

  2. 如果我在 window.open 中直接传递我的 baseURL("https://localhost:8080/someWebsite?customerName="customer.custName;) 的值,它会将 customerName 的值作为 customer.custName 而它应该采用真实的保存在会话中的客户的价值。

澄清一下,当我以下列方式传递 baseUrl 时,我的应用程序运行良好。

navigateToURL(new URLRequest(baseUrl)) 

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

4

1 回答 1

3

如果我按照上述方式执行此操作,则新窗口不会打开,并且 flex 页面显示错误“baseUrl 未定义”。为什么我不能为我的 url 传递变量,而不是直接在 window.open 方法中传递 url?

好吧,baseUrl 变量已定义,但是您在创建 jsCommand 时并未使用该变量。您正在使用一个名为 baseUrl 的字符串;不是变量。

这就是你所拥有的:

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');

希望这是有道理的。

如果我直接在 window.open 中传递我的 baseURL("https://localhost:8080/someWebsite?customerName="customer.custName;) 的值,它将 customerName 的值作为 customer.custName 而它应该采用真实的保存在会话中的客户的价值。

好吧,奇怪的是,您在创建 baseURL 时缺少连接运算符。在您的字符串和之间添加 + customer.custName

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

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

于 2012-06-02T14:22:44.143 回答