外部JS文件函数看不到页面函数



我有一个现有的遗留aspx页面加载外部JS文件。我正在添加功能,并在页面上的脚本块中添加了异步函数。外部JS文件已被修改为调用async函数。无论我在页面的哪个位置加载外部脚本,它仍然会继续抱怨没有定义页面函数。我真的卡住了!由于

更新:

///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触发文本框的模糊

Result is Uncaught ReferenceError: providerPopUp is undefined在Pop_Modal_Window_NPI (PreCert_Create.js:169)在HTMLInputElement。onblur (PreCert_Create.aspx ?……参数)

Pop_Modal_Window_NPI()调用函数providerPopUp(),但后者在一个外壳内,因此不在调用的范围内。

您可以通过将函数添加到窗口命名空间来解决这个问题:

window.providerPopUp = async function() {
...
};

然后Pop_Modal_Window_NPI内部的调用变成:

window.providerPopUp()

(你甚至不需要在函数调用前加上前缀window,我只是为了保持一致性)

最新更新