需求描述
甲方要求写一个js,引入到他们的很多页面上,能在页面右下角弹出内容,并且,引入的js中要有参数,弹出内容要根据这个参数来回显。方法有两种:
1、通过地址拼接参数方法,类似于url传参:
<script src="./show.js?id=15sadefz9dsfeskg&width=100&height=100"></script>
show.js里获取参数的方法:
var id, width, height; var scripts = document.getElementsByTagName("script"); for (var i=0; i< scripts.length;i++) { var script = scripts[i]; if (script && script.getAttribute("src") && script.getAttribute("src").indexOf("show.js")>-1) { var url = script.getAttribute("src"); var params = url.substr(url.indexOf("?")+1).split("&"); for (var i=0;i<params.length;i++){ var kv = params[i].split("="); var key = kv[0]; var value = kv[1]; if("id" == key) { id = value; } if("width" == key) { width = value; } if("height" == key) { height = value; } } } }
2、通过自定义属性的方式获取:
<script src="./show.js" id="15sadefz9dsfeskg" width="100" height="100"></script>
show.js里获取参数的方法:
var id, width, height; var scripts = document.getElementsByTagName("script"); for (var i=0; i<scripts.length; i++) { var script = scripts[i]; if (script && script.getAttribute("src") && script.getAttribute("src").indexOf("show.js")>-1) { if(script.getAttribute("id")){ id = script.getAttribute("id"); } if(script.getAttribute("width")){ width = script.getAttribute("width"); } if(script.getAttribute("height")){ height = script.getAttribute("height"); } } }
以上两种方式,第二种更加优雅,看个人喜好。