Events 钛合金WebView内部的xhtml不';t消防应用程序级事件(Ti.App.fireEvent)

Events 钛合金WebView内部的xhtml不';t消防应用程序级事件(Ti.App.fireEvent),events,webview,xhtml,titanium,appcelerator,Events,Webview,Xhtml,Titanium,Appcelerator,我正在用钛合金开发iOS ePub阅读器应用程序 我正在使用WebView打开一个.xhtml文件,该文件是从ePub解压缩的。它与.html的不同之处在于将html标记作为 <html xmlns:epub="http://www.idpf.org/2007/ops" xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events"> 但即使其他脚本如$('#debug'

我正在用钛合金开发iOS ePub阅读器应用程序

我正在使用WebView打开一个.xhtml文件,该文件是从ePub解压缩的。它与.html的不同之处在于将html标记作为

<html xmlns:epub="http://www.idpf.org/2007/ops" 
  xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:ev="http://www.w3.org/2001/xml-events">
但即使其他脚本如$('#debug').html(sel)可以执行。 但是,当我将文件从.xhtml更改为.html并用简单标记替换html标记时。它可以触发事件

为什么会这样


虽然它在修改后可以工作,但我不喜欢修改从ePub解包的每个.xhtml文件。如何在不将其从.xhtml更改为.html的情况下使其正常工作???

需要更多上下文。此脚本是否位于.xhtml文件中?如果是这样,请注意XHTML解析内联脚本的方式与HTML不同,将脚本放入
中可能会有所帮助<代码>]]>
块。另外,您没有使用禁止使用的东西,如
文档。编写
,是吗?谢谢您的回复。脚本位于内部,不,我没有使用document.write。只是好奇,除了文件。写,还有什么是禁止的?我将尝试将它们放在您提到的CDATA块中。例如,您不能有HTML注释。这是一个很好的页面:很遗憾,将这些脚本放在CDATA中不起作用。我也尝试过把这些脚本放在外部文件中,但仍然无法访问Ti API。。。
$(function(){    
    /** detect touchend **/
    $(document).bind('touchend', function(e){
        var sel = '';
        if(window.getSelection){
            sel = window.getSelection().toString();

            if( sel.length>0 ){
                $('#debug').html( sel );
                Ti.App.fireEvent('EPubReader:selectText', {text:sel} );
            }
        }
    }); 
});