मैं एक स्ट्रिंग में एक चर को लागू करने की कोशिश कर रहा हूँ। मैंने इसकी खोज की है और इस पर अलग-अलग चीजें फेंकने की कोशिश की है लेकिन कुछ भी काम नहीं कर रहा है ..
मेरे पास एक चर है जो इस तरह दिखता है:
http:localhost:8080/Editor/?name=Default
मुझे मूल्य का उपयोग करने में कोई समस्या नहीं है:
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) { return pair[1]; }
}
return (false);
}
var name = getQueryVariable("name")
अब मेरे पास एक स्ट्रिंग है जो इस तरह दिखने वाले पृष्ठ को लोड करती है:
HMI.Builder.init('Files/HMIBuilder/', function () {
//run code after page/iframe is loaded
});
मैं जो करना चाहता हूं वह चर को स्ट्रिंग में जोड़ना है फ़ाइलें/एचएमआईबिल्डर/{नाम} यह काम नहीं करता है। इसे इस तरह दिखने की जरूरत है
Files/HMIBuilder/Default
या जो भी चर पारित किया गया है।
3 जवाब
आपको नीचे की तरह जावास्क्रिप्ट +
प्रतीक का उपयोग करके अपनी स्ट्रिंग को चर के साथ जोड़ना होगा:
HMI.Builder.init('Files/HMIBuilder/' + getQueryVariable("name"), function () {
//run code after page/iframe is loaded
});
या अधिक पठनीयता के लिए आसान replace
का उपयोग करें:
HMI.Builder.init('Files/HMIBuilder/{name}'.replace('{name}', getQueryVariable("name")), function () {
//run code after page/iframe is loaded
});
बेशक, आप इसे और भी अधिक पठनीयता के लिए दो चरणों के साथ कर सकते हैं:
var route = 'Files/HMIBuilder/{name}'.replace('{name}', getQueryVariable("name"));
HMI.Builder.init(route, function () {
//run code after page/iframe is loaded
});
अंत में, हाल के ब्राउज़रों पर (और पिछड़े संगतता के लिए कुछ ट्रांसपिलर के साथ), आप ES6 "`" सिंटैक्स का उपयोग कर सकते हैं:
var route = `Files/HMIBuilder/${getQueryVariable("name")}`;
HMI.Builder.init(route, function () {
//run code after page/iframe is loaded
});
एक टेम्पलेट शाब्दिक का उपयोग करें
HMI.Builder.init(`Files/HMIBuilder/${getQueryVariable(variable)}`, function () {
//run code after page/iframe is loaded
});
आप निम्न फ़ंक्शन चलाकर मापदंडों की एक सूची प्राप्त कर सकते हैं:
function extractParams(url) {
new URL(url).search.substr(1).split('&').map(x => {
var y = x.split('=');
return { [y[0]]: y[1] };
});
}
var params = extractParams('https://www.website.com?id=151&name=john');
जो निम्नलिखित प्रिंट करेगा
[{id: 151}, {name: "john"}]