var varThisObjPosition=getPosition(varThisObj); //取得事件发生处控件坐标
with(varMenuObj){
style.top=varThisObjPosition.top+varThisObjPosition.height+"px";
style.left=varThisObjPosition.left+"px";
style.visibility="visible";
innerHTML="<div><h4>可输拼音/汉字/首字母</h4>"+(varHtmlStr==""?"<nobr>没有找到您查的城市‘"+varObjValue+"’。</nobr>":varHtmlStr+varNextPageStr)+"</div>"; //此句不理解,但个人猜是获得用户输入后,JS取值后给varHtmlStr,然后输出到页面上。不知道这样理解对吗?JS达人指点一下。
with(varMenuObj){
style.top=varThisObjPosition.top+varThisObjPosition.height+"px";
style.left=varThisObjPosition.left+"px";
style.visibility="visible";
innerHTML="<div><h4>可输拼音/汉字/首字母</h4>"+(varHtmlStr==""?"<nobr>没有找到您查的城市‘"+varObjValue+"’。</nobr>":varHtmlStr+varNextPageStr)+"</div>"; //此句不理解,但个人猜是获得用户输入后,JS取值后给varHtmlStr,然后输出到页面上。不知道这样理解对吗?JS达人指点一下。
var res=a?b:c;
a条件成立,则返回b,否则返回c然后结合一下,你代码中这个varHtmlStr是什么。就可以知道是什么意思了
style.top=varThisObjPosition.top+varThisObjPosition.height+"px";
style.left=varThisObjPosition.left+"px";
style.visibility="visible";
则是打算在激发事件的控件旁边来显示上面所说的信息。
在测试的时候在 城市输入框:输入<script>alert(1)</script>,就会直接弹出 1,这说明是没有找到城市名,就用innerHTML直接把上述JS语句输出到屏幕上,进行DOM 操作,这样理解对吧?
用户输入的城市名,先赋给varObjValue———>如果有这个城市名———>然后把“此城市名”赋给(varHtmlStr)同时输出到页面上;所以说alert(1)最终赋给了(varHtmlStr),在屏幕上弹出框。
是需要对(varHtmlStr)进行过滤的。这是我的理解!