顯然,JSON對象可以在鏈接的腳本中傳遞。我想弄清楚到底是如何工作的(或者如果它): http://getfirebug.com/firebuglite#ScriptJSONOptionsJavaScript代碼內<script>標記
回答
由於該元素具有src
屬性,因此未執行內容。這不是嚴格的法律。該HTML5 spec說:
如果有
src
屬性,元素必須是空的,或者含有也匹配腳本內容的限制僅腳本文件。
該<script>
元素的內容既不是有效的JSON也不是有效的JavaScript。它不是有效的JSON,因爲屬性名稱未被引用。它不是有效的JavaScript,因爲儘管它看起來像帶有標記語句的塊表達式,但startInNewWindow
之後的冒號無法合法出現在那裏。
這就是說,一個被加載總是可以尋找最後一個腳本元素,並解析其內容的腳本:
var scripts = document.getElementsByTagName('SCRIPT');
var lastScript = scripts[script.length - 1];
var content = eval(lastScript.innerText || lastScript.textContent);
謝謝!相關:http://ejohn.org/blog/degrading-script-tags/ – user996015 2012-02-04 00:43:31
瀏覽器會忽略<script src />
標籤的所有內容:
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js">
{
overrideConsole: false,
startInNewWindow: true,
startOpened: true,
enableTrace: true
}
</script>
我螢火蟲精簡版文檔在這裏注意到了這一點。
但是,Firebug Lite Javascript會專門找到它的<script>
標籤並手動解析內容。
很感謝。我想我找到了! http://code.google.com/p/fbug/source/browse/lite/branches/firebug1.5/build/firebug-lite-debug.js#478 – user996015 2012-02-04 00:16:28
這裏是疑問解析JSON對象的情況下,有人有興趣的代碼。
// process the Script JSON Options
var innerOptions = FBL.trim(script.innerHTML);
if (innerOptions) {
var innerOptionsObject = eval("(" + innerOptions + ")");
for (var name in innerOptionsObject) {
var value = innerOptionsObject[name];
if (name == "debug") {
Env.isDebugMode = !!value;
}
else if (name in Env.Options) {
Env.Options[name] = value;
}
else {
Env[name] = value;
}
}
}
http://code.google.com/p/fbug/source/browse/lite/branches/firebug1.5/build/firebug-lite-debug.js#478
- 1. 意外標記<JavaScript代碼PHP
- 2. Javascript代碼和HTML標記
- 3. 沒有<script>標記的JavaScript代碼注入
- 4. 我的JavaScript代碼拋出一個SyntaxError(意外標記<)
- 5. 動態<title>在asp.net內嵌代碼中的標記
- 6. Yii2 jQuery代碼內<script>標籤
- 7. 使用Javascript寫上面的代碼<header>使用Javascript的標記
- 8. Javascript標記有<!-- -->
- 9. 如何使用jQuery在代碼標記內添加預標記?
- 10. 如何在<ui:composition>標記內使用<f:loadBundle>標記
- 11. <script></script>標籤裏面的JavaScript代碼?
- 12. 替代之前的替代</body>標籤內嵌Javascript
- 13. Visual Studio將代碼標記爲代碼
- 14. Wordpress外部短代碼解析內部短代碼內容的html標記
- 15. 控件內部嚮導<StepNavigationTemplate>標記在代碼隱藏中不可用?
- 16. 如何在<asp:button ... />標記內運行服務器端代碼?
- 17. 獲取Javascript標記內容
- 18. 欄內代碼的JavaScript代碼
- 19. C#代碼內未觸發Javascript代碼
- 20. Javascript不必須在<script>標記內?
- 21. 如何獲得<a>在javascript中標記內部html
- 22. JQuery Div標記代碼
- 23. C++源代碼標記
- 24. 自動代碼標記
- 25. 紅源代碼 - DOCTYPE標記
- 26. Javadoc源代碼標記
- 27. HTML代碼參考標記
- 28. HTML標記:<<< HTML
- 29. Haml:源代碼結束標記(</source>)未生成
- 30. 在<html>標記之前移除代碼
什麼是你的([實用,聽命(http://stackoverflow.com/faq#dontask))的問題是什麼呢? – Jeroen 2012-02-04 00:09:53
@Jeroen:這是如何工作的? – SLaks 2012-02-04 00:12:05