当前在我的index.html
文件中,我具有以下脚本行:
<script src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&libraries=places"></script>
是否可以提取src
变量并将其作为变量导入脚本中?我尝试使用位于外部xsl:variable
这样的文件中的variable.xsl
:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="google" select="API_KEY"></xsl:variable>
</xsl:stylesheet>
然后尝试将其导入到我的脚本中,
<xsl:include href="variable.xsl"/>
<script src="{$google}"></script>
但是,即使xls:variable
在同一个文件中,脚本源也不起作用。
我想将我的代码发布到公共仓库中,这就是为什么我想隐藏密钥。
答案 0 :(得分:1)
希望这是您要寻找的答案,只需使用JQuery,您就可以动态添加src
属性
HTML
<script id="googleAPI">
注意,我们在脚本元素上设置了一个ID
JavaScript
let url = "https://maps.googleapis.com/maps/api/js?key=MY_KEY&libraries=places"
$("#googleAPI").attr("src", url)
答案 1 :(得分:1)
您不能隐藏客户端的某些内容,而只能对其进行模糊处理(使其变得更难看)。如果您使用xsl文件,则可以发出请求,并看到,如果您设置了动态创建脚本,则可以打开“网络”选项卡,查看请求的去向。如果要隐藏密钥:
"https://maps.googleapis.com/maps/api/js?key=MY_KEY&libraries=places"
发出请求text/plain
的形式获取内容,或将其转换为dataURl
,然后将其发送到客户端,在其中创建script
标签并设置textContent
,{{1 }},或从innerHTML
创建对象网址(服务器响应作为Blob
部分)并设置src等。