AIR HTML Control Issue (не открываются ссылки с атрибутом target = "_blank") - PullRequest
2 голосов
/ 14 апреля 2011

Я разработал приложение Adobe AIR, которое открывает панель веб-сайтов в элементе управления HTML.Я понял, что HTML-контроль открывает ссылки, которые открываются в том же окне, однако он не открывает ссылки, которые открываются в новом окне, то есть ссылки, которые имеют атрибут (target = "_ blank), например:

<a href"" target="_blank"> Opens in new window </a>

Я искал в Интернете, хотя у меня есть одно решение здесь AIR HTML со ссылками «_blank» , но он открывает ссылки в браузерах и слишком устарел (сентябрь 2008 г.).Итак, кто-нибудь знает еще один простой способ открыть ссылку?

1 Ответ

2 голосов
/ 16 апреля 2011

Я переписал пример, который вы нашли, чтобы изменить цель привязки, теперь ссылки открываются в том же окне.Но у этого метода есть ограничения - исправлены только статические ссылки, любые методы JS, пытающиеся открыть ссылку в новом окне, завершатся неудачей.

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
    xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    initialize="init()">
<mx:Script>
<![CDATA[
    private function init():void
    {
        html.htmlText =
            "<html><body>" +
            "<a href='http://adobe.com' target='_blank'>Adobe (blank)</a><br/>" +
            "<a href='http://ixbt.com' target='_self'>iXBT (self)</a>" +
            "</body></html>";
        html.addEventListener(Event.COMPLETE, onHTMLComplete);
    }

    private function onHTMLComplete(event:Event):void
    {
        var document:Object = html.domWindow.document;
        for each (var anchor:Object in document.getElementsByTagName("a"))
        {
            if (anchor.hasOwnProperty("target"))
            {
                if (anchor.target == "_blank")
                {
                    anchor.target = "_self";
                }
            }
        }
    }

]]>
</mx:Script>
    <mx:HTML id="html" width="100%" height="100%"/>
</mx:WindowedApplication>
...