HTMLLoader:在页面历史记录中向后和向前导航

时间:2013-08-07 12:27:17

标签: flash air

我从来没有遇到过Hileloader的页面历史记录后退和前进的问题,Htmlloader是主要Native Window阶段的子项。我只需要使用:HtmlLoaderVariable.historyForward();

但是当我将HTMLLoader作为子项添加到新的本机窗口时,它似乎不起作用。

以下是代码:

function createNewHtmlWindow(pageUrl:String):void{
    //Everytime I click a button, this function creates a seperate Native Window each containing HtmlLoader Class to load a webpage

    var myhtml= new HTMLLoader();
    myhtml.width = 1000;
    myhtml.height = 780;    
    myhtml.addEventListener(Event.COMPLETE, myHtmlLoaded);


    var myHtmloptions = new NativeWindowInitOptions();
    myHtmloptions.transparent = false;
    myHtmloptions.systemChrome = NativeWindowSystemChrome.STANDARD;
    myHtmloptions.type = NativeWindowType.NORMAL;   

    var extHtmlWindow = new NativeWindow(myHtmloptions);    
    extHtmlWindow.title="new title";
    extHtmlWindow.width = 1015;
    extHtmlWindow.height = 800; 

    extHtmlWindow.activate();
    extHtmlWindow.stage.align = "TL";
    extHtmlWindow.stage.scaleMode = "noScale"; 
    extHtmlWindow.stage.addChild(myhtml);

    var backNativeWin=new BackButton();
    backNativeWin.x=5;
    backNativeWin.y=500;
    backNativeWin.addEventListener(MouseEvent.CLICK, loadPrevHistory);
    extHtmlWindow.stage.addChild(backNativeWin);

    var nextNativeWin=new NextButton();
    nextNativeWin.x=30;
    nextNativeWin.y=500;    
    nextNativeWin.addEventListener(MouseEvent.CLICK, loadNextHistory);
    extHtmlWindow.stage.addChild(nextNativeWin);

    myhtml.load(new URLRequest(pageUrl));
}

function myHtmlLoaded(e:Event):void
{
    //Page loads successfully

}


function loadNextHistory(m:MouseEvent):void{
    output.text="Next>>"+m.target.parent.getChildAt(0); //Next>>[object HTMLLoader] 
    m.target.parent.getChildAt(0).historyForward(); // This line is not working


}

function loadPrevHistory(m:MouseEvent):void{
    output.text="Prev>>"+m.target.parent.getChildAt(0); //Prev>>[object HTMLLoader]
    m.target.parent.getChildAt(0).historyBack(); // This line is not working

}   

1 个答案:

答案 0 :(得分:1)

我已经使用自己的网页尝试了您的代码,它运行得非常好.. 这是我的代码:

import flash.html.HTMLLoader;
import org.aswing.JButton;
import flash.filesystem.File;

function createNewHtmlWindow(pageUrl:String):void{
//Everytime I click a button, this function creates a seperate Native Window each containing HtmlLoader Class to load a webpage

var myhtml= new HTMLLoader();
myhtml.width = 1000;
myhtml.height = 680;    
myhtml.addEventListener(Event.COMPLETE, myHtmlLoaded);


var myHtmloptions = new NativeWindowInitOptions();
myHtmloptions.transparent = false;
myHtmloptions.systemChrome = NativeWindowSystemChrome.STANDARD;
myHtmloptions.type = NativeWindowType.NORMAL;   

var extHtmlWindow = new NativeWindow(myHtmloptions);    
extHtmlWindow.title="new title";
extHtmlWindow.width = 1015;
extHtmlWindow.height = 700; 

extHtmlWindow.activate();
extHtmlWindow.stage.align = "TL";
extHtmlWindow.stage.scaleMode = "noScale"; 
extHtmlWindow.stage.addChild(myhtml);

var backNativeWin:JButton=new JButton("back");
backNativeWin.setSizeWH(100,22);
backNativeWin.x=5;
backNativeWin.y=500;
backNativeWin.addEventListener(MouseEvent.CLICK, loadPrevHistory);
extHtmlWindow.stage.addChild(backNativeWin);

var nextNativeWin=new JButton("next");
nextNativeWin.setSizeWH(100,22);
nextNativeWin.x=130;
nextNativeWin.y=500;    
nextNativeWin.addEventListener(MouseEvent.CLICK, loadNextHistory);
extHtmlWindow.stage.addChild(nextNativeWin);

myhtml.load(new URLRequest(pageUrl));
}

function myHtmlLoaded(e:Event):void{
//Page loads successfully
}


function loadNextHistory(m:MouseEvent):void{
trace("Next>>"+m.target.parent.getChildAt(0)); //Next>>[object HTMLLoader] 
m.target.parent.getChildAt(0).historyForward(); // This line is not working
}

function loadPrevHistory(m:MouseEvent):void{
trace("Prev>>"+m.target.parent.getChildAt(0)); //Prev>>[object HTMLLoader]
m.target.parent.getChildAt(0).historyBack(); // This line is not working

}
createNewHtmlWindow(File.desktopDirectory.resolvePath("index.html").url);

这是我桌面上的index.html:

<html>
<head>
    <title>This is a test page</title>
</head>
<body>
    <a href="http://www.google.com">Click me to jump to Google.</a>
</body>

所以我认为你的测试网站一定有问题,换另一个再尝试可能有帮助..