不愿意见到的黑屏
刚接触krpano的朋友,最初目的很可能是想在手机上观看全景,krpano的两套viewer,Flash和HTML5正好满足了跨平台的需求,而且同一个地址就能在电脑和手机观看,于是我们的朋友很开心在电脑上看到了出色的全景效果,但当在手机上打开地址时,却弹出下面这个黑色画面,什么意思?FATAL ERROR,致命错误,载入或解析失败
为啥?明明电脑能看,到了手机就致命了呢!这是因为krpano在电脑上可能是根据你的设定使用了Flash的内核,而在手机则使用HTML5的内核,HTML5对xml的语法检查比Flash对xml的语法更为严格,在Flash上忽略的错误在HTML5面前一个都不会放过。
找到黑屏的原因
那遇到这种情况怎么办呢?直接把xml文件拖到你的pc浏览器,例如拖到遨游,这时候浏览器出现以下信息。
This page contains the following errors:
error on line 30 at column 44: Attribute name redefined
Below is a rendering of the page up to the first error.
我们只需要知道这是第30行的错误,而且是Attribute name redefined的错误,这个什么意思?暂且不提。我们打开xml文件,看看第30行是什么。
1 |
<layer name="skin_logo" name="skin_logo" url="" scale="0.25" opened_onclick="openurl('http://www.shendu360.net/',_blank);" /> |
下面我列举一些常见的xml语法错误。
首先还是接着刚才的属性重复定义,例如下面这种
1 |
<plugin name="test" url="image.png" keep="true" visible="true" keep="false" /> |
1 2 3 |
<plugin menu="true" name="test"> <menu name="testmenu" color="0xFFFFFF" /> </plugin> |
This page contains the following errors: error on line 26 at column 1: error parsing attribute name Below is a rendering of the page up to the first error.
这个有可能是相关的标签没有闭合,也就是不符合下述的写法
1 |
<plugin name="test"></plugin> |
1 |
<plugin name="test" /> |
尤其是当layer标签出现问题时,会出现以下错误
This page contains the following errors:
error on line 244 at column 10: Opening and ending tag mismatch: layer line 0 and krpano
Below is a rendering of the page up to the first error.
这时候就找找是不是那一层layer没有闭合好。
注释部分也是容易出错,要符合以下写法:
1 |
<!-- activated spot image (zorder=3 and hidden at start) --> |
还有没有空格,例如
1 |
keep="true"visible="false" |
1 |
keep="true" visible="false" |
xml语言还规定了一些字符是不能随便用的,它们有对应的替位符,
& – &
< – <
> – >
” – "
‘ – '
当然像分号; 还有逗号, 也是容易出错的地方。
只要我们按照上述方法排查,直到出现完整的xml文件,那基本上你的代码就不存在语法问题了。
详细语法错误说明,请看 krpano语法错误检查
在 “如何避免krpano的语法错误” 上有 1 条评论