【发布时间】:2019-11-13 13:18:27
【问题描述】:
这是一个基本问题(再次发布,因为在我更新 the question 后它没有重新打开)。但我在 SO 上找不到任何重复项。
这是我打算在不同页面上的项目中使用的脚本。目的是将span 元素中显示的默认ID 覆盖为来自URL 参数session_order 的订单号。这不会影响任何事情,只会增强我项目的用户体验。
scripts.js(加载在标头中):
function get_url_parameter(url, parameter) {
var url = new URL(url);
return url.searchParams.get(parameter);
}
在我的 HTML 模板中,我以这种方式调用函数,
<div onload="this.innerHTML = get_url_parameter(window.location.href, 'session_order');">24</div>
也试过这个,
<div><script type="text/javascript">document.write(get_url_parameter(window.location.href, 'session_order'));</script></div>
当页面被渲染时,没有任何变化。对于第一种情况,控制台中没有错误或警告。
对于第二种情况,控制台记录了错误Uncaught ReferenceError: get_url_parameter is not defined,尽管script.js 在div 元素之前加载(没有任何错误)。
通常,我会在服务器端使用 Flask 执行此操作,但我正在尝试 JavaScript(我是 JavaScript 新手),因为它只是一个 UX 增强。
我错过了什么?
【问题讨论】:
-
由于HTML是从上到下读取的,如果你的函数是在元素调用之后声明的,它就找不到了。您可以在正文的末尾包装您的 javascript 以便找到它。
-
@AndréSilva,如果是这样的话,第一个案例应该也失败了吧?我在控制台中没有看到类似的错误。
-
我正在将我的
script.js加载到<head>并调用<body>中的函数。
标签: javascript html