Как присвоить значение переменной набора данных в IE10? - PullRequest
0 голосов
/ 22 мая 2019

Я разрабатываю небольшой скрипт с использованием vanilla Javascript и пытаюсь присвоить значение переменной набора данных, например:

(function(e,l,b,u,t,n){
    t=l.createElement(b);
    t.dataset.id='my-script';
    t.dataset.orgId='34';
})(window,document,'script','https://example.com/assets/my_script.js');

Однако при тестировании этого в IE10 и 9 я получаюследующая ошибка:

SCRIPT5007: невозможно установить свойство 'id' с неопределенной или нулевой ссылкой

После некоторых исследований я узнал, что elem.dataset не поддерживается интернетомexplorer 10. Но я не смог найти способ присвоить значение этому элементу, я пробовал что-то вроде этого:

(function(e,l,b,u,t,n){
    t=l.createElement(b);

    if (t.dataset)
        t.dataset.id='my-script';
    else
        t.setAttribute('id', 'my-script');
    t.async=1;

    t.src=u;

    if (t.dataset)
        t.dataset.orgId='34';
    else
        t.setAttribute('orgId', '34');
})(window,document,'script','https://exampl.com/assets/my_script.js');

Но безрезультатно.

1 Ответ

1 голос
/ 22 мая 2019

dataset атрибуты всегда начинаются с data-.Вы должны использовать этот префикс в своем коде.

И атрибут должен быть без верблюда, поэтому orgId становится data-org-id.

(function(e,l,b,u,t,n){
    t=l.createElement(b);

    if (t.dataset)
        t.dataset.id='my-script';
    else
        t.setAttribute('data-id', 'my-script');
    t.async=1;

    t.src=u;

    if (t.dataset)
        t.dataset.orgId='34';
    else
        t.setAttribute('data-org-id', '34');
})(window,document,'script','https://exampl.com/assets/my_script.js');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...