您的位置:首页 > Web前端 > JavaScript

完成htc contextmenu.js鼠标右键显示错误 解决gis 画圆位置不对问题

2010-11-14 00:34 489 查看
昨天发现的contextmenu.js在ie6/7显示错误,但在ie8下是正常的。今天终于发现是因为array数组在ie6/7下面array[0]存的是方法,对应ie8的array [方法].所以ie6/7下面的数组实际是从array[1]开始的。以下附解决方案。

另外解决gis界面,画圆的位置不准确的问题,主要是因为在一个被嵌套的div层内,鼠标位置的计算是有点麻烦的。加上左边和上边被挤占的位置,最后的位置才是正确的。

<div id = 'a'>

<div id='b'>

b的位置clientX是相对于a计算而言的。

</div>

</div>

附加IE版本问题的解决方案:

如何让静态HTML代码根据不同IE版本显示不同内容。 这里的技巧就是利用IE的HTML注释表达式。

HTML 的注释格式是 <!-- Comment content --> , IE 对HTML注释做了一些扩展,使之可以支持条件判断表达式:

<!--[if expression]> HTML <![endif]--> 当表达式expression 为True 的时候,显示 HTML 内容。

例子:

view plaincopy to clipboardprint?
<!--[if IE 5]>
<p>Welcome to Internet Explorer 5.</p>
<![endif]-->
<!--[if IE 5]>
<p>Welcome to Internet Explorer 5.</p>
<![endif]-->

和编程语言类似,这里的表达式还支持大于(gt)、小于(lt)、 与或非 等操作符。 下面是一些例子。

[if IE] 判断是否IE

[if IE 7] 判断是否是IE7

[if !IE] 判断是否不是IE

[if lt IE 5.5] 判断是否是IE5.5 以下版本。 (<)

[if lte IE 6] 判断是否等于IE6 版本或者以下 (<=)

[if gt IE 5] 判断是否IE5以上版本 (> )

[if gte IE 7] 判断是否 IE7 版本或者以上

[if !(IE 7)] 判断是否不是IE7

[if (gt IE 5)&(lt IE 7)] 判断是否大于IE5, 小于IE7

[if (IE 6)|(IE 7)] 判断是否IE6 或者 IE7

代码示例:

view plaincopy to clipboardprint?
<!--[if IE]><p>You are using Internet Explorer.</p><![endif]-->
<![if !IE]><p>You are not using Internet Explorer.</p><![endif]>

<!--[if IE 7]><p>Welcome to Internet Explorer 7!</p><![endif]-->
<!--[if !(IE 7)]><p>You are not using version 7.</p><![endif]-->

<!--[if gte IE 7]><p>You are using IE 7 or greater.</p><![endif]-->
<!--[if (IE 5)]><p>You are using IE 5 (any version).</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]><p>You are using IE 5.5 or IE 6.</p><![endif]-->
<!--[if lt IE 5.5]><p>Please upgrade your version of Internet Explorer.</p><![endif]-->
<!--[if IE]><p>You are using Internet Explorer.</p><![endif]-->
<![if !IE]><p>You are not using Internet Explorer.</p><![endif]>

<!--[if IE 7]><p>Welcome to Internet Explorer 7!</p><![endif]-->
<!--[if !(IE 7)]><p>You are not using version 7.</p><![endif]-->

<!--[if gte IE 7]><p>You are using IE 7 or greater.</p><![endif]-->
<!--[if (IE 5)]><p>You are using IE 5 (any version).</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]><p>You are using IE 5.5 or IE 6.</p><![endif]-->
<!--[if lt IE 5.5]><p>Please upgrade your version of Internet Explorer.</p><![endif]-->

注:IE5 以下的版本不支持这种注释扩展。 不过现在也很难找到IE4了 ... :)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐