myVariable = "<%=myVar%>"
if (myVariable == "Y") doSomething;
else doSoemthingElse;
我正在修改代碼以在高級模式下編譯。使用JSP/ASP/PHP /等修改Javascript來注入變量是相當普遍的。 我能想到的處理這種情況的方法包括使用:關閉編譯器高級和服務器端注入Javascript
全局變量
myVariable = window["myVariable"];
EVAL
myVariable = eval('"<%=myVar%>"');
代替使用預/後處理腳本,
傳球一樣函數變量
function exposedFunction(myVariable){/* stuff */}
或傳遞一個對象,並通過名稱
訪問屬性這將會是巨大的,如果有某種方式來標註變量作爲未知變量,即使它被定義爲一個字符串,或欺騙編譯成這麼想。
也許更好的方法是創建一個處理所有這些事情的嵌入式JavaScript的前/後處理腳本?
編輯: 它可能是單調乏味的搜索內聯變量,甚至更復雜<%>片段嵌入在內嵌腳本和HTML標籤中的onclick事件。
什麼是最好的推薦方法?
我希望能夠內聯<%= myVar的%>字符串,如果可能,從而使輸出變爲
if("<%=myVar%>"=="Y")doSomething;else doSoemthingElse
但如果不可能,那會是建議創建一個預/後期製作工具,只是使用全局變量,使用函數,或只是將其視爲情境?
谷歌自己似乎注入內聯變量到他們的內聯JavaScript的一些地方。 也許他們有一個pre/post-build工具?
在選擇方法時,我應該考慮哪些主要考慮事項?我只能想到時間/精力投資。 這只是一個嘗試太難以優化的案例;我應該只提取< %%>的東西,並把它們放在全局變量?
這裏似乎沒有直接的問題。另外,你遇到的問題並不明顯 - 你提供了幾種可能的技術的例子,但沒有提到他們爲什麼不適合你。 – jordancpaul
我更新了一個編輯 – user120242
注意:我會選擇一個自動化的預處理/後處理工具,它可以實現大部分所需的工作。它將有效地消除時間/努力投資。 – user120242