我有一個奇怪的情況,我想動態地在使用JavaScript的XML文檔中構建一個URL字符串。我已經想出瞭如何使用encodeURIComponent在字符串中使用&符號來組裝我的URL參數,並構建到我需要的URL。但是,我需要將URL作爲解碼字符串寫入頁面,否則訪問該URL不會執行我需要的操作。整個文檔使用JavaScript構建,因此它必須位於JavaScript環境中。在JavaScript中使用encodeURIComponent來編碼URL變量,但然後解碼寫入?
舉例來說,我有以下URL我能夠以組裝爲XML正確呈現:
http://www.myurl.com/product-name?itemcolor=2%26size=7
不過,我需要把它放回這是一個鏈接在XML文檔:
http://www.myurl.com/product-name?itemcolor=2&size=7
這可能嗎?那有意義嗎?
這裏是我的代碼片段至今:
var baseURL = 'http://myurl.com', urlappend = '', colorid, sizeid;
function getVariants(item) {
variants = '<variant>';
if ("custitem109" in item['columns']){
colorid = item['columns']['custitem109']['internalid'];
urlappend += '?itemcolor=' + colorid;
}
if ("custitem110" in item['columns']){
sizeid = item['columns']['custitem110']['internalid'];
urlappend += colorid ? encodeURIComponent('&') + 'size=' + sizeid : '?size=' + sizeid;
}
if (typeof item['columns']['urlcomponent'] !== 'undefined' && urlappend !== '') {
variants += '<action_url>' + baseURL + '/' + item['columns']['urlcomponent'] + urlappend + '></action_url>';
}
variants += '</variant>';
return variants;
}
(此功能被通過多次循環來構建XML飼料的一部分)
這是如果讓任何差異NetSuite的suitelet或如果任何人有任何問題,爲什麼這一切都必須在JS環境。
提供的任何幫助將非常感激。
通常情況下,你會經過編碼的一切,然後你 '?'可以使用decodeURIComponent()在'?'之後解碼字符串的部分。另一方面。 – rasmeister
「*爲了使XML正確呈現*」是什麼意思? – Bergi
看起來您已經將百分比編碼與XML編碼混淆了。當有許多測試庫可用時,請不要編寫自己的編碼函數,這些函數庫可以正確執行後續操作。 – zzzzBov