为什么我无法在移动浏览器上将脚本附加到 DOM

问题描述 投票:0回答:1

为什么我无法在移动浏览器上将脚本附加到 DOM。看起来在移动浏览器中操作 dom 是完全不同的,但实际上不知道是什么意义。我以前没有遇到过这样的情况,一直都很好。看起来这个问题也不是那么实际,因为我在 stackoverflow 上找不到关于它的更多正确信息。对类似问题的所有建议大多是关于语法错误,甚至毫无意义。在我的代码中没有错误,这使得调试非常困难。有谁有想法或者可能遇到过这样的事情吗?

function thumb_handler(data) {

    console.log(data);

    let icons = document.querySelectorAll('.messenger-wrap a span');

    for (var i = 0; i < icons.length; i++) {

        if (icons[i].getAttribute('class') == data.class) icons[i].style.background = 'url(' + data.img + ')';

    }

}

function requestServerCall(cls, img) {
    var head = document.head;
    var script = document.createElement('script');
    script.type  = "text/javascript";
    script.text  = "alert('voila!');" 

    script.setAttribute('src', 'http://inmrkt/general.php?do=load_icons&callback=thumb_handler&class=' + cls + '&img=' + img);
    head.appendChild(script);
    // head.removeChild(script);
}


function icon_loader() {

    let icons = document.querySelectorAll('.messenger-wrap a span');

    for (var i = 0; i < icons.length; i++) {

        let img = icons[i].getAttribute('data-img'),
            cls = icons[i].getAttribute('class');

        requestServerCall(cls, img);

    }

}

icon_loader();

在任何桌面上都完全可以,但在手机上不行。它只是没有出现在 dom 树中。

在此输入图片描述

javascript
1个回答
0
投票

问题是我试图让代码在服务器上工作,而不检查两次是否仍然存在本地环境的任何内容。

script.setAttribute('src', 'http://local/general.php?do=load_icons&callback=thumb_handler&class=' + cls + '&img=' + img);

url 显然指向本地主机域...并且应该如下所示:

script.setAttribute('src', 'http://example.com/general.php?do=load_icons&callback=thumb_handler&class=' + cls + '&img=' + img);

script.setAttribute('src', 'general.php?do=load_icons&callback=thumb_handler&class=' + cls + '&img=' + img);
© www.soinside.com 2019 - 2024. All rights reserved.