2009-5-19
解决具体的问题,wap浏览器解析建设银行网站中的问题
总的来说,建行的网站写的很不标准,相比交行的网站解析起来容易多了~~
WML中的setvar 传参问题:
Setvar给浏览器的当前页面内变量赋值,该变量可以在当前Deck中的任意Card中调用
根据定义,setvar中的变量在同一个deck的任意card中传递。
例子:
<wml>
<card>
<p>
<anchor>
Go To Card 2
<go href="#card2">
<setvar name="x" value="30"/>
</go>
</anchor>
</p>
</card>
</wml>
但是没有陈述setvar中的变量是否可以在不同wml之间进行传递。
所以对于一般的浏览器可以解析setvar这个标签在 同一个deck中传递。
但是我在使用mobile IE 和M3Gate 浏览器的时候,发现这些浏览器把setvar中的变量设置为全局的变量,可以在跨wml页面之间进行访问。
我们访问建行的wap网站在
开通向导页面中我们发现
<wml>
<head>
<meta. forua="true" http-equiv="Cache-Control" content="max-age=0" />
</head>
<card id="card1" title="开通向导">
<onevent type="onenterbackward">
<go href="../backindex.jsp"/>
</onevent>
<p>
<img src="../images/fopen.gif" alt="开通向导" />
<br/>
请在开通服务前登录建行网站(www.ccb.com),仔细阅读
<a href="../agreement/agreement.jsp">《建行手机银行服务协议》</a>
<br/>
详情咨询95533
<br/>
<br/>
<anchor>
接受
<go href="https://wap.ccb.cn/cmccb/servlet/ccbMain" method="post">
<setvar name="IDNUMBER" value=""/>
<postfield name="TXCODE" value="BLOGIN"/>
<postfield name="DN" value="$(MISC_MSISDN)"/>
<postfield name="WAPVER" value="$(WAPVER)"/>
</go>
</anchor>|<anchor>
不接受
<go href="../backindex.jsp"/>
</anchor>
<br/>
<br/>
------------------
<br/>
。。。。。
</p>
</card>
</wml>
中黄色部分,就是从上一个页面中的参数,所以为了处理这样的页面,在浏览器的解析时候,把setvar中的变量做了全局处理,才能ok,继续。
考察其他的浏览器:星际浏览器根本没有处理setvar标签!