首页 > JS > 隐藏百度地图“未获得百度地图商用授权”文字标识

隐藏百度地图“未获得百度地图商用授权”文字标识

时间:2024-11-06浏览次数:363

百度地图,高德地图,腾讯地图形成了垄断联盟,对开发者不管使用量多少,一律5万/年的授权费,这对中小开发者带来了很大负担。如有不从,就直接将配额降到个位数。作为开发者,不是想白嫖,愿意为使用量按需付费,但拒绝一刀切式的规则,尤其各个厂商串通起来的垄断规则。

百度地图会通过高亮如下的未授权文字来逼迫你就范,这些红色的文字无法用普通的css样式display:none来隐藏。

image.png

经过仔细分析后,发现“未授权”文字是通过Shadow Element来实现,并通过设置成private来阻止外界对其内容的修改。百度的方案看似无懈可击,但还有一种方法来实现隐藏这些文字。那就是在百度地图渲染前,劫持attachShadow接口调用,向其注入隐藏这些文字的样式代码。代码如下:

<script>
let originShadow = Element.prototype.attachShadow;
Element.prototype.attachShadow = function (...args) {
	const shadowRoot = originShadow.call(this, ...args);
	let style = document.createElement("style");
	style.innerHTML = "div { display: none !important; }";
	shadowRoot.appendChild(style);
	return shadowRoot;
};
</script>

请试试吧,希望能帮助被这个问题困扰的你

参考地址:https://blog.csdn.net/bonyren/article/details/141819643