Как использовать переменную в строке - PullRequest
3 голосов
/ 29 октября 2019

Я пытаюсь реализовать переменную в строке. Я искал это и пытался бросать в него разные вещи, но ничего не получается ..

У меня есть переменная, которая выглядит следующим образом:

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 /{имя} Это не работает. В конечном итоге он должен выглядеть так:

Files/HMIBuilder/Default

Или передается любая переменная.

Ответы [ 3 ]

4 голосов
/ 29 октября 2019

Вам нужно будет объединить вашу строку с переменной, используя символ javascript +, как показано ниже:

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
});
2 голосов
/ 29 октября 2019

использовать шаблонный литерал

HMI.Builder.init(`Files/HMIBuilder/${getQueryVariable(variable)}`, function () {

            //run code after page/iframe is loaded
        });
0 голосов
/ 29 октября 2019

Вы можете получить список параметров, запустив следующую функцию

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"}]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...