C#WebBrowser使用百度地图,不存在‘bind’属性问题

问题描述:

C#WebBrowser使用百度地图,利用DrawingManager工具绘制点、线、面对象,boss要求右键弹出删除菜单,删除对象。但遇到如下问题

为覆盖物对象绑定右键菜单事件时,提示‘对象不支持“bind属性或方法”’。


为这个问题纠结好久。终于在http://www.bkjia.com/webzh/894596.html看到了解决思路。

文中说了这个bind方法只有在ie10版本的浏览器猜得到原生支持。所以我估计WebBrowser也可能不支持bind方法。

解决思路

增加property原型是的WebBrowser支持bind。

在调用的html文件中,加入下列代码:

<script type="text/javascript">
	if (!Function.prototype.bind) {
		Function.prototype.bind = function(oThis) {
			if (typeof this !== "function") {
				throw new TypeError("Function.prototype.bind-what is trying to be bound is not callable");
			}
			var aArgs = Array.prototype.slice.call(arguments, 1),
			fToBind = this,
			fNOP = function() {},
			fBound = function() {
				return fToBind.apply(this instanceof fNOP && oThis? this : oThis, 
				aArgs.concat(Array.prototype.slice.call(arguments)));
			};
			fNOP.prototype = this.prototype;
			fBound.prototype = new fNOP();
			return fBound;
		}
	}
</script>
WebBrowser调用此html文件,问题解决。



猜你喜欢

转载自blog.csdn.net/xys206006/article/details/48551547
今日推荐