Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript动态更改div内容和脚本_Javascript_Html - Fatal编程技术网

使用javascript动态更改div内容和脚本

使用javascript动态更改div内容和脚本,javascript,html,Javascript,Html,我正在构建网页仪表板示例,其中两个div中的内容应根据所选业务流程进行更改。我的示例页面是 左侧的部分显示特定html页面的内容,其中包含所选业务流程供应、制造、仓库等的KPI 右边的部分包含聊天小部件,我希望它是每个业务流程的个人聊天工具,供应团队的供应聊天,财务团队的财务聊天等等 左侧分区html内容正在更改,但右侧分区内容的更改存在一些问题。最初它加载金融聊天。选择“供应”时,将显示聊天框。注意:更改内容html和聊天仅为两个业务领域创建-财务和供应 更改聊天窗口小部件的代码为: func

我正在构建网页仪表板示例,其中两个div中的内容应根据所选业务流程进行更改。我的示例页面是

左侧的部分显示特定html页面的内容,其中包含所选业务流程供应、制造、仓库等的KPI

右边的部分包含聊天小部件,我希望它是每个业务流程的个人聊天工具,供应团队的供应聊天,财务团队的财务聊天等等

左侧分区html内容正在更改,但右侧分区内容的更改存在一些问题。最初它加载金融聊天。选择“供应”时,将显示聊天框。注意:更改内容html和聊天仅为两个业务领域创建-财务和供应

更改聊天窗口小部件的代码为:

function SetChatSupply() {
var divObject = document.getElementById('div_right');
var newContent = '<div id="chatwee_supply"></div>';
divObject.innerHTML = newContent;
};
function SetChatFinance() {
var divObject = document.getElementById('div_right');
var newContent = '<div id="chatwee_finance"></div>';
divObject.innerHTML = newContent;
};
function SetScriptSupply () {
var body = document.getElementByTagName('body')[0];
var newScript = document.createElement('script');
newScript.src = 'http://repository.chatwee.com/scripts/069673da978e699031ff2031b4664ff2.js';
newScript.type = 'text/javascript';
newScript.charset='UTF-8';
body.parentNode.appendChild(newScript);
};
function SetScriptFinance () {
var body = document.getElementByTagName('body')[0];
var newScript = document.createElement('script');
newScript.src = 'http://repository.chatwee.com/scripts/6cc6797833fd98149c6e39d505b57ac2.js';
newScript.type = 'text/javascript';
newScript.charset='UTF-8';
body.parentNode.appendChild(newScript);
};
有没有人能看一下我的代码,并给出一些提示,说明我应该在代码中更正哪些内容才能使聊天小部件的更改生效


谢谢

我猜问题出在获取body元素的方法不正确。应该是这样的:

var body = document.getElementsByTagName('body')[0];
注意单词元素的复数形式。我建议您使用:

var body = document.body;
更新1: 另一件事应该纠正——您正在将脚本添加到html标记中,但这不起作用,因为脚本只允许在主体和头部部分使用。还有一件事要尝试:

body.appendChild(newScript);
但事实上,没有必要在每次单击按钮时添加脚本。为什么不在加载站点时加载脚本,然后单击就可以从脚本中调用函数呢

更新2: 好的,考虑到我们不能更改脚本的要求,我建议这是一个有点难看的解决方案,但不确定它是否能工作:

function SetChatSupply() {
    var divObject = document.getElementById('div_right');
    var newContent = document.createElement('div');
    newContent.setAttribute('id', 'chatwee_supply');
    var newScript = document.createElement('script');
    newScript.src =  'http://repository.chatwee.com/scripts/069673da978e699031ff2031b4664ff2.js';
    newScript.type = 'text/javascript';
    newScript.charset='UTF-8';
    divObject.appendChild(newContent);
    divObject.appendChild(newScript);
};

因此,我们的想法是将add div和add script两种方法结合在一个函数中,不再需要SetScriptSupply,因此每次按下链接时,您都会覆盖div_的全部内容,然后重新加载并执行脚本。对于finance chat,您也应该这样做。

好吧,对于开始,正确的方法名称是getElementsByTagName,注意ElementsThank You,Ilya的复数形式。我改成了复数。问题依然存在:069673da978e699031ff2031b4664ff2.js脚本中有什么内容?您的脚本是否已模糊/缩小?我在itI中找不到函数SetChatSupply。我使用Chatwee.com上的聊天盒小部件,它提供了这个.js使小部件工作。有两个这样的.js文件:一个用于财务团队聊天盒,另一个用于供应团队聊天盒。我要赶飞机,稍后会回来。你能检查一下你的函数在点击时是否被调用吗?是的,函数肯定被调用了。您可以在我的网站上查看完整的代码。