AdobeAIR(html/javascript):navigateToUrl';s窗口参数不工作

AdobeAIR(html/javascript):navigateToUrl';s窗口参数不工作,javascript,html,navigation,air,Javascript,Html,Navigation,Air,在Adobe Air项目(html/javascript)的默认浏览器中导航到Url时出现问题 air.navigateToUrl(请求,窗口名)启动浏览器并显示页面,但它会为每个请求显示一个新选项卡 下面是一个新的Air应用程序中主页的非常简单的示例,该应用程序再现了该问题: <html> <head> <title>navigateToURLTest</title> <script type="te

在Adobe Air项目(html/javascript)的默认浏览器中导航到Url时出现问题

air.navigateToUrl(请求,窗口名)
启动浏览器并显示页面,但它会为每个请求显示一个新选项卡

下面是一个新的Air应用程序中主页的非常简单的示例,该应用程序再现了该问题:

<html>
    <head>
        <title>navigateToURLTest</title>
        <script type="text/javascript" src="lib/air/AIRAliases.js"></script>        
    </head>
    <body>      
        <a href="#" onclick="javascript:air.navigateToURL(new air.URLRequest('http://www.adobe.com'), 'TestWindow');return false;">Same Tab</a>
    </body>
</html>

导航测试

如何在同一窗口/选项卡中打开url?

您应该让两个锚点指定相同的目标:

<html>
    <head>
        <title>navigateToURLTest</title>
        <script type="text/javascript" src="lib/air/AIRAliases.js"></script>
    </head>
    <body>
        <a href="http://www.google.com" target="testp"
            onclick="javascript:air.navigateToURL(new air.URLRequest('http://www.adobe.com'), 
            'TestWindow');return false;">New Tab</a>
        <br />
        <a href="http://www.adobe.com" target="testp"
            onclick="javascript:air.navigateToURL(new air.URLRequest('http://www.adobe.com'), 
            'TestWindow');return false;">Same Tab</a>
    </body>
</html>

导航测试


如果在您当前的选项卡列表中没有打开名为“testp”的窗口,它将打开一个新选项卡,如果您已经有了,那么它将被更改。

此代码适用于我:

navigateToURL(new URLRequest("http://www.adobe.com"), '_self');
应用于您的代码:

<html>
<head>
    <title>navigateToURLTest</title>
    <script type="text/javascript" src="lib/air/AIRAliases.js"></script>
</head>
<body>
    <a href="#" onclick="air.navigateToURL(new air.URLRequest('http://www.adobe.com'),'TestWindow');return false;">Same Tab</a>
</body>
</html>

导航测试
请注意两件事, rekaszeru在href中添加了一个链接(该链接不应该存在……与target=相同)
其次,onclick事件不需要“javascript:”

@rekaszeru:谢谢。我添加了_blanktarget只是为了显示Air中可用的两种可能的方法(没有指定的target默认为_blank)。@rekaszeru:当我使用指定的窗口参数多次单击锚点时,就会出现问题。(或者在您的代码中,当我单击两个链接时,会打开两个选项卡。因此,您必须每次指定目标,这样您就可以确保链接将在同一选项卡(窗口)中打开。)。出现了什么问题?问题是链接总是在新窗口中打开。使用Chrome作为默认浏览器,IE作为默认浏览器进行了尝试。我尝试了调试Air(在Aptana studio中),但也是在完全安装HTML/Javascript Air应用程序之后。Adobe文档声明两者均为“\u self”并且可以使用命名的窗口参数。但是命名的窗口参数不起作用。因此,您的问题是打开了一个新窗口,而不是一个新选项卡?这应该在浏览器设置中进行更正。否则,上面的代码(即使将
href
属性更改为“#”)也不起作用做它应该做的,搜索“testp”选项卡/窗口,并打开其中的链接。我看起来像一个空气中的bug,但必须有一个解决方法。有没有idea@Rephael:这正是我所做的。这对你有效吗?对我无效。(在Aptana Studio中调试)。我刚刚在Flash Builder(ActionScript)中创建了相同的Air应用程序。同样的问题。只是一个评论,我会href=“javascript:void();”因为我讨厌哈希符号(它跳到页面顶部),你注意到我更改了我的答案吗?@Rephael:对不起,没有注意到。我希望StackOverflow立即发送通知!!(和唤醒电话)。我会尽快尝试。不过,有一件事是“\u self”ref对我也有效;windows参数无效。但我将尝试“应用于您的代码部分”。