這段代碼是我使用的解析對(duì)象拼接成url字符串的方法
encodeParamsStr: function(obj) {
var params = [];
Object.keys(obj).forEach(function(key) {
var value = obj[key];
// 如果值為undefined我們將其置空
if (typeof value === "undefined") {
value = "";
}
// 對(duì)于需要編碼的文本(比如說(shuō)中文)我們要進(jìn)行編碼
params.push([key, encodeURIComponent(value)].join("="));
});
return params.join("&");
},
下面這個(gè)是我的調(diào)用
let baseUrl = 'static/html/charting_library/static/tv-chart.e816a7a6edc9de3ed709.html';
let obj = {
localserver:1,
widgetbar:{"datawindow":false,"details":false,"watchlist":false,"watchlist_settings":{"default_symbols":[]}},
drawingsAccess:{"type":"black","tools":[{"name":"Regression Trend"}]},
timeFrames:[
{"text":"5Y","resolution":"W","description":"5年","title":"5年"},
{"text":"1Y","resolution":"D","description":"1年","title":"1年"},
{"text":"6M","resolution":"120","description":"6月","title":"6月"},
{"text":"3M","resolution":"60","description":"3月","title":"3月"},
{"text":"1M","resolution":"30","description":"1月","title":"1月"},
{"text":"5D","resolution":"5","description":"5日","title":"5日"},
{"text":"1D","resolution":"1","description":"1日","title":"1日"}
],
locale:'zh',
customCSS:'night.css',
debug:false,
timezone:'Asia/Shanghai',
}
this.chartUrl = `${baseUrl}#${this.$utils.encodeParamsStr(obj)}`;
$("#chart_iframe").attr('src', this.chartUrl);
下圖這個(gè)是訪問(wèn)的url,其中對(duì)象并沒(méi)有被解析出來(lái),還是Object,我需要的正確效果應(yīng)該是像圖二這樣被編譯
const encodeParams = window.encodeURIComponent(JSON.stringify(obj));
const params = JSON.parse(window.decodeURIComponent(encodeParams));
補(bǔ)充回答
let baseUrl =
'static/html/charting_library/static/tv-chart.e816a7a6edc9de3ed709.html';
let obj = {
localserver: 1,
widgetbar: {
datawindow: false,
details: false,
watchlist: false,
watchlist_settings: { default_symbols: [] },
},
drawingsAccess: { type: 'black', tools: [{ name: 'Regression Trend' }] },
timeFrames: [
{ text: '5Y', resolution: 'W', description: '5年', title: '5年' },
{ text: '1Y', resolution: 'D', description: '1年', title: '1年' },
{ text: '6M', resolution: '120', description: '6月', title: '6月' },
{ text: '3M', resolution: '60', description: '3月', title: '3月' },
{ text: '1M', resolution: '30', description: '1月', title: '1月' },
{ text: '5D', resolution: '5', description: '5日', title: '5日' },
{ text: '1D', resolution: '1', description: '1日', title: '1日' },
],
locale: 'zh',
customCSS: 'night.css',
debug: false,
timezone: 'Asia/Shanghai',
};
// 序列化對(duì)象為 JSON 字符串并使用 base64 編碼
this.chartUrl = `${baseUrl}#${btoa(encodeURIComponent(JSON.stringify(obj)))}`;
$('#chart_iframe').attr('src', this.chartUrl);
解析參數(shù)
const params = JSON.parse(
decodeURIComponent(
atob(
document
.querySelector('#chart_iframe')
.contentWindow.location.hash.substr(1)
)
)
);
console.log(params);北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。