為了加一個查看二維碼的功能,如:
//頁面內按鈕
<a class="manipulate-btn" href="#" onclick="showQRcode(<%#Eval("id")%>,<%#Eval("community_id")%>)">預覽</a>
//創建窗口 function showQRcode(user_id,community_id){ var objNum = arguments.length; var d = top.dialog({ width: "1", title: '用微信掃描二維碼預覽', url: 'dialog/dialog_QRcode_business.aspx?url='+<%=getPreview()%> +'user_id='+user_id+'&community_id='+community_id , onclose: function () { var trHtml = this.returnValue; if (trHtml.length > 0) { $("#item_box").append(trHtml); } } }).showModal(); //檢查是否修改狀態 if (objNum == 1) { d.data = obj; } }
運行之后老是會報錯:Uncaught ReferenceError: showQRcode is not defined
1.嘗試在$(function() {})中添加此段代碼($(function() {});是$(document).ready(function(){ })的簡寫),無果。
$(document).ready 里的代碼是在頁面內容都加載完才執行的,你直接寫到script標簽里,當頁面加載完這個script標簽就會執行里邊的代碼了,如果你標簽里執行的代碼調用 了當前還沒加載過來的代碼或者dom,那么就會報錯。
2.百度此錯誤,得出結論:JS文件引用問題。
然后修改引用路徑由相對路徑改為絕對路徑,無果。
3.懷疑是iframe的鍋,遂將該頁面的地址輸入地址欄,單獨打開此頁面。
發現剛進頁面就提示報錯:QRcode_apply_list.aspx:306 Uncaught SyntaxError: Unexpected token :
原因:
url: 'dialog/dialog_QRcode_business.aspx?url='+<%=getPreview()%> +'user_id='+user_id+'&community_id='+community_id ,
這一行中的 <%=getPreview()%>未添加單引號,改正:
url: 'dialog/dialog_QRcode_business.aspx?url='+'<%=getPreview()%>' +'user_id='+user_id+'&community_id='+community_id ,
總結:出現問題細心排查,從頭重現問題,勿遺漏。