嵌入应该能够显示按钮

Embedding should have been able to show the button

本文关键字:显示 按钮      更新时间:2023-09-26

请注意,以下代码是由工程师生成的。(我现在没有和工程师联系(

现在是场景。根据创建这个脚本的工程师的说法,一旦正确编辑并嵌入我们的网站,这些脚本的整个集合应该能够生成一个按钮。

在我在我们自己的网站上实现这一点之前,我想将这些代码测试到一个通过保存我们网站上的代码创建的简单页面上。我问工程师是否可能,他答应了。

下面是应该能够生成按钮的代码。

单击Call.js

  (function () {
var createScriptElement = function (src, onload, onerror) {
        var element = document.createElement("script");
        element.type = "text'/javascript";
        element.src = src;
        element.onload = onload;
        element.onerror = onerror;
        return element;
};

var createLinkElement = function (src) {
    var element = document.createElement('link');
    element.href = src;
    element.rel = 'Stylesheet';
    element.media_type = 'text/css';
    return element;
};
var createUI = function () {
    var clickCallDiv = document.createElement('div');
    clickCallDiv.style.cssText = 'width: 300px;height: 60px;position: fixed;z-index: 999;right: 20px;bottom: 320px;';
    var call_btn = document.createElement("button");
    call_btn.id = "dial_btn_call";
    var session_div = document.createElement("div");
    session_div.id = 'sessions';
    var webcam_div = document.createElement("div");
    webcam_div.style.cssText = 'height:0';
    webcam_div.id = 'webcam';
    var video_remote = document.createElement('video');
    video_remote.id = 'remoteView';
    video_remote.autoplay = 'autoplay';
    video_remote.hidden = 'hidden';
    var video_local = document.createElement('video');
    video_local.autoplay = 'autoplay';
    video_local.hidden = 'hidden';
    video_local.muted = 'muted';
    video_local.id = 'selfView';
    webcam_div.appendChild(video_remote);
    webcam_div.appendChild(video_local);
    clickCallDiv.appendChild(call_btn); //add the text node to the newly created div.
    var contain = document.createElement('div');
    contain.appendChild(session_div);
    contain.appendChild(webcam_div);
    clickCallDiv.appendChild(contain);
    return clickCallDiv;
};
var urls = {};
urls.rtcninja = 'rtcninja.js';
urls.jquery = 'jquery.js';
urls.i18n = "jquery.i18n.js";
urls.messagestore = "jquery.i18n.messagestore.js";
urls.jssip = 'jssip.js';
urls.init = 'init.js';
urls.gui = 'gui.js';
urls.css = 'style.css';

var rtcninja_script = createScriptElement(urls.rtcninja, function () {
    // Must first init the library
    rtcninja();
    // Then check.
    if (!rtcninja.hasWebRTC()) {
        console.log('WebRTC is not supported in your browser :(');
    } else {
        document.body.appendChild(createUI());
    }
});
var jquery_script = createScriptElement(urls.jquery, function(){
    document.head.appendChild(i18_script);
    document.head.appendChild(jssip_script);
    document.head.appendChild(gui_script);
    document.head.appendChild(init_script);
});
var i18_script = createScriptElement(urls.i18n, function(){
    document.head.appendChild(messagestore_script);
});
var messagestore_script = createScriptElement(urls.messagestore);
var jssip_script = createScriptElement(urls.jssip);
var init_script = createScriptElement(urls.init);
var gui_script = createScriptElement(urls.gui);
var click_call_css = createLinkElement(urls.css);
document.head.appendChild(jquery_script);
document.head.appendChild(rtcninja_script);
document.head.appendChild(click_call_css);
})();

该脚本在嵌入时应该能够生成一个按钮。他在他们网站上嵌入脚本的方式是通过这个

<script>
document.write('<script src="sourcefile/clickCall.js">/script>')
</script>

但这对我来说不起作用,所以我尝试了这个

document.write('<sc' + 'ript src="clickCall.js">/sc' + 'ript>')

现在我的第一个问题是,这个脚本阻止加载所有其他脚本,导致输出为空。另一个是,它不会显示预期的按钮,它应该显示在网页上。我解决这个问题的办法是实现DOM,但我不知道如何实现它,尤其是因为我不明白它是如何工作的,以及如何实现它。你能向我解释一下DOM是如何工作以及我将如何实现它吗?感谢

document.write执行时只写入字符串,不执行内部脚本。

因此,与此相反,

<script>
document.write('<script src="sourcefile/clickCall.js"></script>')

你可以直接调用你的脚本。

<script src="sourcefile/clickCall.js"></script>