我有一個使用jQuery.MD5庫的js代碼。它完美的作品在我的服務器上:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://example.com/static/js/jquery.md5.js"></script>
</head>
<body>
<script>
// my code goes here (declaring variables and functions)
var code = $.md5('mystring');
// and a little more code
</script>
</body>
但後來我把它上傳到Web應用程序(這是我無法控制),這使得它看起來像這一點,並把它放到一個iframe:
<head>
<script>
// some extra variables are declared here
// double-checked that nothing here can break my code
</script>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://example.com/static/js/jquery.md5.js"></script>
<script>
// some code
var code = $.md5('mystring');
// some code
</script>
</body>
這段代碼開始給我發出$.md5 is not a function
錯誤。奇怪的事情。嘗試清除緩存,將jquery.md5.js代碼直接放入我的,沒有任何工作。
請注意,所有的代碼在我的機器上工作,所以我的JS一定沒有問題。
更新:有問題的代碼行爲似乎是不可預知的,這意味着有時它可以正常工作,無需更改。
什麼可能是錯的?
嗯,「一些代碼」的初始塊可能會破壞某些東西,但是我們不能確定它是否屬實,因爲它不在問題中。 – Pointy
@有點抱歉,忘了補充一點。我在那裏聲明函數和變量,沒什麼特別的。也檢查過。不知道是否將我的完整代碼放在這裏是一個好主意,因爲它太複雜了 –
只是爲了縮小這裏的可能性,如果你使用webapp的頁面結構(在腳本標籤內部,腳本中額外的變量)在iframe之外,是否會拋出同樣的錯誤? –