外部JS文件函数看不到页面函数
External JS file function cannot see page function
我有一个现有的遗留 aspx 页面正在加载外部 JS 文件。我正在添加功能,并在页面的脚本块中添加了一个异步函数。外部 JS 文件已被修改为调用异步函数。无论我在页面的哪个位置加载外部脚本,它仍然会继续抱怨未定义页面函数。我真的卡住了!谢谢
更新:
///loading scripts
<script src="../_scripts/jquery-3.4.1.min.js"></script>
<script src="../_scripts/bootstrap-4.6.0.min.js"></script>
<script src="../_scripts/jquery.datatables.min.js"></script>
<script src="../_scripts/datatables.select.min.js"></script>
//page function
<script type="text/javascript">
$(document).ready(function () {
async function providerPopUp() {
await $.ajax({
url: '../Provider/PreCert_PrvSearch.aspx',
method: 'get',
data: { typeOfSearch: typeOfSearch, coIdNbr: coIdNbr },
dataType: 'json',
success: function (response) {.......
//load external script after page script
<script src="../_scripts/PreCert_Create.js"></script>
//call to page function added to external js file
function Pop_Modal_Window_NPI (){
providerPopUp()
.then((result) => {
console.log('result: ' + result);
retPrv = result;
})
外部JS文件函数Pop_Modal_Window_NPI在文本框模糊时触发
结果是 Uncaught ReferenceError: providerPopUp is not defined
在 Pop_Modal_Window_NPI (PreCert_Create.js:169)
在 HTMLInputElement.onblur (PreCert_Create.aspx?...参数)
Pop_Modal_Window_NPI() 调用函数 providerPopUp(),但后者位于外壳内,因此不在调用范围内。
您可以通过将函数添加到 window 命名空间来解决此问题:
window.providerPopUp = async function() {
...
};
然后Pop_Modal_Window_NPI里面的调用变成:
window.providerPopUp()
(你甚至不需要在函数调用前加上前缀 window,我这样做只是为了保持一致性)
我有一个现有的遗留 aspx 页面正在加载外部 JS 文件。我正在添加功能,并在页面的脚本块中添加了一个异步函数。外部 JS 文件已被修改为调用异步函数。无论我在页面的哪个位置加载外部脚本,它仍然会继续抱怨未定义页面函数。我真的卡住了!谢谢
更新:
///loading scripts
<script src="../_scripts/jquery-3.4.1.min.js"></script>
<script src="../_scripts/bootstrap-4.6.0.min.js"></script>
<script src="../_scripts/jquery.datatables.min.js"></script>
<script src="../_scripts/datatables.select.min.js"></script>
//page function
<script type="text/javascript">
$(document).ready(function () {
async function providerPopUp() {
await $.ajax({
url: '../Provider/PreCert_PrvSearch.aspx',
method: 'get',
data: { typeOfSearch: typeOfSearch, coIdNbr: coIdNbr },
dataType: 'json',
success: function (response) {.......
//load external script after page script
<script src="../_scripts/PreCert_Create.js"></script>
//call to page function added to external js file
function Pop_Modal_Window_NPI (){
providerPopUp()
.then((result) => {
console.log('result: ' + result);
retPrv = result;
})
外部JS文件函数Pop_Modal_Window_NPI在文本框模糊时触发
结果是 Uncaught ReferenceError: providerPopUp is not defined 在 Pop_Modal_Window_NPI (PreCert_Create.js:169) 在 HTMLInputElement.onblur (PreCert_Create.aspx?...参数)
Pop_Modal_Window_NPI() 调用函数 providerPopUp(),但后者位于外壳内,因此不在调用范围内。
您可以通过将函数添加到 window 命名空间来解决此问题:
window.providerPopUp = async function() {
...
};
然后Pop_Modal_Window_NPI里面的调用变成:
window.providerPopUp()
(你甚至不需要在函数调用前加上前缀 window,我这样做只是为了保持一致性)