我可以使用load事件检测何时加载了iframe的内容.不幸的是,就我的目的而言,这有两个问题:
是否有某种方法可以确定是否发生上述任何一种错误?
我正在编写一个基于Mozilla/XULRunner的半网络半桌面应用程序,因此欢迎只在Mozilla中运行的解决方案.
情况:
题:
我正在使用XULRunner并在代码示例中遇到以下模式:
var StrangeSample = {
backingStore : "",
get foo() { return this.backingStore + " "; },
set foo(val) { this.backingStore = val; },
func: function(someParam) { return this.foo + someParam; }
};
StrangeSample.foo = "rabbit";
alert(StrangeSample.func("bear"));
Run Code Online (Sandbox Code Playgroud)
这导致"兔子熊"被警告.
我以前从未见过这种在Javascript中使用过的get/set模式.它有效,但我找不到任何文档/参考.这是XUL特有的东西,最近的一种语言特征,还是我错过的东西?我很困惑,因为几个月前我特意找了这样的东西,找不到任何东西.
作为参考,删除"get"或"set"会导致语法错误.将它们重命名为其他任何内容都是语法错误.它们确实似乎是关键字.
任何人都可以为我阐明这一点,或指出我参考?
我正在运行小学0.2(Ubuntu 12.04,但有不同的桌面环境),我安装了Aptana工作室.一切都很好,我无法让内部网络浏览器工作.
当我打开Aptana Studio起始页面时,我收到一条错误消息"我们无法加载Chromium浏览器.请查看文档以获取有关可能的解决方法/修复程序的详细信息.该消息包含一个链接,但您必须拥有@aptana关闭错误后点击详细信息给出了以下内容,如果非常类似于如何在Linux上为Aptana设置内部浏览器,但我已经尝试过但MOZILLA_FIVE_HOME=/usr/lib/xulrunner它没有用.
不再处理[未知的Mozilla路径(MOZILLA_FIVE_HOME未设置)] org.eclipse.swt.SWTError:在org.eclipse.swt.SWT.error中不再处理[未知的Mozilla路径(MOZILLA_FIVE_HOME未设置)](SWT.java:4308 )org.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1826)org.eclipse.swt.browser.Mozilla.create(Mozilla.java:687)org.eclipse.swt.browser.Browser. (Browser.java:99)org.eclipse.ui.internal.browser.BrowserViewer.(BrowserViewer.java:225)at com.aptana.portal.ui.internal.BrowserViewerWrapper.createSWTBrowserViewer(BrowserViewerWrapper.java:26)at com位于org.eclipse.ui.internal.EditorReference的com.aptana.portal.ui.browser.AbstractPortalBrowserEditor.createPartControl(AbstractPortalBrowserEditor.java:112)上的.aptana.portal.ui.browser.AbstractPortalBrowserEditor.createBrowserViewer(AbstractPortalBrowserEditor.java:216) .createPartHelper(EditorReference.java:670)位于org.eclipse.ui.internal.Workbench的org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)PartReference.getPart(WorkbenchPartReference.java:595)在org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)在org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)org.eclipse的org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) org.eclipse.ui.PartStack.setSelection上的org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1245)中的.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473) (PartStack.java:1198)org.eclipse.ui.PartStack.showPart(PartStack.java:1597)位于org.eclipse的org.eclipse.ui.internal.PartStack.add(PartStack.java:493). ui.internal.EditorStack.add(EditorStack.java:103)org.eclipse.ui.PartStack.add(PartStack.java:479)org.eclipse.ui.internal.EditorStack.add(编辑 Stack.java:112)在org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63)在org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225)在org.eclipse.ui .internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213)org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:808)org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:707) )在org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:666)在org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2942)在org.eclipse.ui.internal.WorkbenchPage. busyOpenEditor(WorkbenchPage.java:2850)在org.eclipse.ui.internal.WorkbenchPage.access $ 11(WorkbenchPage.java:2842)在org.eclipse.ui.internal.WorkbenchPage $ 10.run(WorkbenchPage.java:2793)在组织位于org.eclipse.ui.i的org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)的.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)nternal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)在org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756)在com.aptana.portal.ui.internal.Portal $ 1.runInUIThread(Portal.java :227)org.eclipse.ui.progress.UIJob $ 1.run(UIJob.java:95)org.eclipse.swt.wts.RunnableLock.run(RunnableLock.java:35)atg.eclipse.swt.widgets .synchronizer.runAsyncMessages(Synchronizer.java:135)位于org.eclipse.swt.wts.Display.readAndDispatch(Display.java:3212)的org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)处. Org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)org.eclipse.ui.internal.Workbench.access $ 4 (Workbench.java:2499)org.eclipse.ui.internal.Workbench $ 7.run(Workbench.java:679)org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)at org org.eclipse.ui.PlatformU上的.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)I.createAndRunWorkbench(PlatformUI.java:149)在com.aptana.rcp.IDEApplication.start(IDEApplication.java:125)在org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)在组织org.eclipse.core上的org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)中的.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) .runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)位于org.eclipse的java.lang.reflect.Method.invoke(Method.java:601)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43). equinox.launcher.Main.invokeFramework(Main.java:622)位于org.eclipse.equinox.laun的org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)cher.Main.run(Main.java:1410)org.eclipse.equinox.launcher.Main.main(Main.java:1386)
的XULrunner /壁虎似乎是开发GUI密集型应用程序真的很有趣(通过使用广泛使用的技术,比如HTML/CSS/SVG/XUL/JavaScript)的.但是内置的C++ APIS(XPCOM,NECKO,......)看起来如此古老而复杂.此外,普遍缺乏文档/开发工具真的很可怕.
另一方面,QT有一个非常好的平台,并且有很好的文档和支持.UI部分真的是"传统的".
您对XULRUNNER有什么经验,特别是与其他C++桌面应用程序框架(如QT/GTK/MFC ......)相比?缺什么?什么是真棒?
问题:如果我想将现有的MFC应用程序迁移到跨平台的C++桌面应用程序框架,那么使用XULRUNNER而不是QT或GTK是否明智?
我正在开发一个基于Mozilla XULRunner的应用程序.
我正在使用xhmtl1-strict.xsdW3C提供的属性来获取.现在要求将<video>标记添加到我的应用程序,但我的应用程序不支持任何HTML5元素或属性.
那么,有什么建议吗?
我打算为专有系统设计一个应用程序XUL和XPCOM.所以我决定使用C/C++但是如何在这个领域作为初学者开始开发我找不到一个好的指南来开始.如果你能提供一些链接和书籍,那将是件好事.我还想知道如何防止用户在视图部分中特别修改代码,因为逻辑可以在XPCOM中完成.
在Xul中,我如何知道网络是否已连接?
--update
使用:
function observe(aSubject, aTopic, aState) {
if (aTopic == "network:offline-status-changed") {
write("STATUS CHANGED!");
}
}
var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
os.addObserver(observe, "network:offline-status-changed", false);
Run Code Online (Sandbox Code Playgroud)
和偏好:
pref("network.manage-offline-status", true);
Run Code Online (Sandbox Code Playgroud)
它不起作用..这里有一个错误报告,但我不认为它与它有关.
-
实际上我认为不可能收到通知,因为即使在Firefox中我们也从未收到通知,如果用户希望浏览器知道它处于脱机状态,则需要手动标记"脱机工作".
-
屏幕截图我的Firefox"about:config"过滤"离线"字符串,遗憾的是,没有"network.manage-offline-status":

我没有使用过XUL,看起来很神秘.如何创建一个简单的XUL应用程序,只需在Linux环境中加载网页?不需要窗户装饰,历史,后退或前进按钮.只是最简单的XUL应用程序加载网页...使用xulrunner与GRE版本10.0.11.
另外,在哪里获得有关编写XUL应用程序的教程的最佳位置?
我正在使用SWT.Browser(SWT.MOZILLA)开发RCP应用程序(Windows ):
Browser browser = new Browser(parent, SWT.MOZILLA);
Run Code Online (Sandbox Code Playgroud)
它与旧的XULRunner 3.6.23以及此处描述的安装工作正常:
xulrunner.exe --register-global
Run Code Online (Sandbox Code Playgroud)
我想使用新的XULRunner 8.x,但正如这里提到的,安装XULRunner 的旧方法已被删除.
所以我以编程方式添加了XULRunner-Path:
System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "Path\\To\\xulrunner_8.x");
Run Code Online (Sandbox Code Playgroud)
但是当我启动我的应用程序时,我会收到以下错误
org.eclipse.swt.SWTError: XPCOM error -2147467261
Run Code Online (Sandbox Code Playgroud)
那么,使用RCP应用程序嵌入XULRunner 8.x并避免此错误的首选方法是什么?