Javascript 使用长块(包括脚本)动态更改div的源/内容
我已经看到了很多关于类似问题的问题和答案,但我没有找到这个特定案例的答案 我在网页中有一个Javascript 使用长块(包括脚本)动态更改div的源/内容,javascript,jquery,html,dygraphs,Javascript,Jquery,Html,Dygraphs,我已经看到了很多关于类似问题的问题和答案,但我没有找到这个特定案例的答案 我在网页中有一个,我在其中动态地将数据显示为图形,它需要将javascript输入(使用库)。我想实现一个复选框,在图形代码和显示实时网络摄像头连接的代码之间更改的内容,这也需要脚本 根据我找到的示例,我尝试了innerHTML和jQuery函数,但它们都是指没有脚本内容的非常简单的HTML更改,我发现更复杂的是如何将图片更改为内容。我已经读到不支持src属性,其他论坛说是的,在我的情况下它不起作用。库div src.js
,我在其中动态地将数据显示为图形,它需要将javascript输入
(使用库)。我想实现一个复选框,在图形代码和显示实时网络摄像头连接的代码之间更改
的内容,这也需要脚本
根据我找到的示例,我尝试了innerHTML
和jQuery函数,但它们都是指没有脚本内容的非常简单的HTML更改,我发现更复杂的是如何将图片更改为
内容。我已经读到
不支持src属性,其他论坛说是的,在我的情况下它不起作用。库div src.js
也不适用于这种情况
另一个尝试是使用
标记,它已经工作,但是页面不能正常工作并且不稳定,特别是websocket连接。Eclipse显示了一个警告,上面写着“未知标记”,我已经读到
在HTML5中已经过时了
我希望使用jQuery执行此操作,但直到知道为止,都没有成功
使用脚本动态插入
长HTML代码块并调用js库的最佳方法是什么?
<input type="radio" name="radiobutton" value="graph" onClick="changeDivContent()">
<input type="radio" name="radiobutton" value="video" onClick="changeDivContent()">
<div id="graph-video">
--- Block with HTML, nesting divs and javascript ---
</div>
结果是:图形代码导致故障和websocket关闭 试试这个
function changeDivContent() {
$('#graph-video').html('<iframe width="420" height="345"src="http://www.youtube.com/embed/XGSy3_Czz8k"></iframe>)');
}
依我看,你有各种各样的问题。首先是动态加载js文件。为此,您必须将它们添加为DOM对象,而不是内部HTML。为此,您可以使用此功能:
$( "#graph-video" ).load( "video.jsp" );
$( "#graph-video" ).load( "graphic.jsp" );
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
摘自
至于div中的图片,它在很大程度上取决于您所指的图片类型
的背景属性:
$('div_selector').css('background-image','url(img_-url)')
元素,如dygraph生成的元素:为您的特定需求找到一个好的教程,您可以从查找开始,因为canvas元素提供了大量用于绘制和重画的选项最后它成功了。感谢下面的评论。我已经使用了“.load()”函数。方法是从每个jsp文件(视频和图形)中提取所有javascript代码/函数。然后我将javascript功能放在一个js文件中,该文件通过主页收费。它就这样运行。
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}