请原谅丑陋的代码,这里只是我可以用来重现我的错误的实际代码的最简单的版本。我基本上使用钛的WebView来打开本地保存的.htm文件,以便我可以利用HTML5图形功能。我正在做的很好。问题是我需要将一些数据传递给htm文件,我正在按照文档推荐的方式执行 - 使用Ti.App.fireEvent - 并且这个工作...一次。但是,如果我离开窗口并再次导航回它失败,并给我一个NS_ERROR_NOT_AVAILABLE。我已经尝试在Firefox中的这个代码作为Web预览,并在Android设备和模拟器中使用相同的问题。很明显,它有一些问题,如果视图被回调,它不会以相同的方式加载,我猜测它被从堆栈上拉回来,这与'load'事件监听器或某事有关,但我不知道如何修复它。这里是我的代码的简化版本,只是为了演示问题:问题与webview和Ti.App.addEventListener导致崩溃
app.js
Titanium.UI.setBackgroundColor('#000');
var win = Ti.UI.createWindow({
layout: 'vertical',
});
var wv = Ti.UI.createWebView({
url: 'test.htm',
height: '50%'
});
var but = Ti.UI.createButton({
width: 100,
height: 50,
title: 'Press',
});
var wvopen = false;
but.addEventListener('click', function() {
if (wvopen === false) {
win.add(wv);
wvopen = true;
} else {
win.remove(wv);
wvopen = false;
}
});
wv.addEventListener('load', function() {
Ti.App.fireEvent('go');
});
win.add(but);
win.open();
而且.htm文件:
test.htm
<!doctype html>
<html>
<head>
<title>Test</title>
</head>
<body>
<p>A Little Test</p>
<script>
var Ti = window.parent.Ti;
Ti.App.addEventListener('go', function(){
alert(1);
});
</script>
</body>
</html>
我想你的HTML文件名应该是没有的test.html TEST.HTM –
没有良好的,由于某种原因,Firefox是告诉我该release()不是一个函数。我知道..我看了文档,它在那里...重命名使0差异。 –