使用 JavaScript 访问 html 文件中内联 <script> 标记内的变量
Accessing a variable inside an inline <script> tag in an html file with JavaScript
<script async src="https://www.googletagmanager.com/gtag/js?id=<key here>"></script>
<script>
const container = document.getElementById('app');
const key = container.getAttribute('secret-key');
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', key);
</script>
我正在尝试访问我需要在 <script>
标签内添加 Google Analytics 的密钥。我能够在第二个代码块中使用
const container = document.getElementById('app');
const key = container.getAttribute('secret-key');
我想对第一个 <script>
子句使用相同的键,但我不确定是否可以对内联 <script>
做同样的事情?我想使用相同的 const key
来替换 <key here>
.
我怎样才能做到这一点?
编辑
<script>
function appendGAScriptTag() {
const configKeys = JSON.parse(container.getAttribute('data-bootstrap')).common.conf;
const gaKey = configKeys['GOOGLE_ANALYTICS_KEY'];
let gaScriptTag = document.createElement('script');
gaScriptTag.type = 'text/javascript';
gaScriptTag.async = true;
gaScriptTag.src = `https://www.googletagmanager.com/gtag/js?id=${gaKey}`;
document.getElementsByTagName('head')[0].appendChild(gaScriptTag);
}
appendGAScriptTag(); // <--- calling it here
</script>
您可以动态创建 <script>
标签,使用... 更多 JavaScript!
function appendGAScriptTag() {
var gaScriptTag = document.createElement('script');
gaScriptTag.type = 'text/javascript';
gaScriptTag.async = true;
gaScriptTag.src = `https://www.googletagmanager.com/gtag/js?id=${document.getElementById('app').getAttribute('secret-key')}`;
document.getElementsByTagName('head')[0].appendChild(gaScriptTag);
}
当您想将生成的元素注入到 DOM 中时,在您现有的 JavaScript 代码中调用 appendGAScriptTag()
。
<script async src="https://www.googletagmanager.com/gtag/js?id=<key here>"></script>
<script>
const container = document.getElementById('app');
const key = container.getAttribute('secret-key');
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', key);
</script>
我正在尝试访问我需要在 <script>
标签内添加 Google Analytics 的密钥。我能够在第二个代码块中使用
const container = document.getElementById('app');
const key = container.getAttribute('secret-key');
我想对第一个 <script>
子句使用相同的键,但我不确定是否可以对内联 <script>
做同样的事情?我想使用相同的 const key
来替换 <key here>
.
我怎样才能做到这一点?
编辑
<script>
function appendGAScriptTag() {
const configKeys = JSON.parse(container.getAttribute('data-bootstrap')).common.conf;
const gaKey = configKeys['GOOGLE_ANALYTICS_KEY'];
let gaScriptTag = document.createElement('script');
gaScriptTag.type = 'text/javascript';
gaScriptTag.async = true;
gaScriptTag.src = `https://www.googletagmanager.com/gtag/js?id=${gaKey}`;
document.getElementsByTagName('head')[0].appendChild(gaScriptTag);
}
appendGAScriptTag(); // <--- calling it here
</script>
您可以动态创建 <script>
标签,使用... 更多 JavaScript!
function appendGAScriptTag() {
var gaScriptTag = document.createElement('script');
gaScriptTag.type = 'text/javascript';
gaScriptTag.async = true;
gaScriptTag.src = `https://www.googletagmanager.com/gtag/js?id=${document.getElementById('app').getAttribute('secret-key')}`;
document.getElementsByTagName('head')[0].appendChild(gaScriptTag);
}
当您想将生成的元素注入到 DOM 中时,在您现有的 JavaScript 代码中调用 appendGAScriptTag()
。