■■■■■■■■■■求助一个动态生成HTML的问题■■■■■■■■■■
要实现一个功能,html中读取服务器上xml文件中的节点,在一个div中,动态生成几个图片(后面带文字说明),然后点图片的时候,执行一个脚本方法。
如果正常的使用<input type="image" src="1.jpg" width="284" height="254" onClick="test('b.wma')" title="b.wma">可以正常运行,test这个脚本也能执行。但是如果我在一个table里面,动态生成这些代码(代码贴在后面),结果动态生成的时候,不管怎么设input的属性(如onclcik,onmouseover等,都不触发对应的事件),代码如下。
说了这么多,大体意思就是,动态生成的代码,触发不了脚本事件,请大家帮看一下。
html里面放了一个<div id="div1" style="width:850px;height:500px;overflow:auto"><table id="movie_list_tb"></table></div>来放动态生成的table。
function createMovieTable(){
var objTable = document.getElementById("movie_list_tb"); //table object
var tr_movie ;
var td_movie ;
var subMovieTbElement ; //each movie table object
var rowCount ; //movie count
var tr_movie_sub ;
var td_movie_sub ;
var txtNode_movie_sub ;
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); //xml object
xmlDoc.async="false" ;
xmlDoc.load("movies.xml") ;
rowCount = xmlDoc.childNodes[1].childNodes.length;
//alert(xmlDoc.childNodes[1].childNodes.length);
//table property initialization
objTable.setAttribute("width","850");
for(var loopi =0 ; loopi < rowCount ; loopi ++){
var imageElement ;
var pElement;
var hrefElement;
//movie loop
tr_movie = objTable.insertRow(loopi);
td_movie = tr_movie.insertCell(0);
subMovieTbElement = document.createElement("table");
subMovieTbElement.setAttribute("width","798");
//tr 1 bgcolor="#C1F0FF"
tr_movie_sub = subMovieTbElement.insertRow(0);
tr_movie_sub.setAttribute("bgcolor","#C1F0FF");
//td 1 height="16" colspan="2"
td_movie_sub = tr_movie_sub.insertCell(0);
td_movie_sub.setAttribute("height","16");
td_movie_sub.setAttribute("colspan","2");
txtNode_movie_sub = document.createTextNode("this is movie "+ loopi + " !!!");
td_movie_sub.appendChild(txtNode_movie_sub);
//tr 2 (two td)
tr_movie_sub = subMovieTbElement.insertRow(1);
//td width="297" height="256"
td_movie_sub = tr_movie_sub.insertCell(0);
td_movie_sub.setAttribute("width","294");
td_movie_sub.setAttribute("height","283");
imageElement = document.createElement("input");
imageElement.setAttribute("type","image");
imageElement.setAttribute("width","284");
imageElement.setAttribute("height","254");
imageElement.setAttribute("src",xmlDoc.childNodes[1].childNodes[0].childNodes[0].text);
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[0].text);
imageElement.setAttribute("onMouseOver","alert(11111);");//xmlDoc.childNodes[1].childNodes[0].childNodes[1].text
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[1].text);
imageElement.setAttribute("title",xmlDoc.childNodes[1].childNodes[0].childNodes[2].text);
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[2].text);
td_movie_sub.appendChild(imageElement);
//td width="491"
td_movie_sub = tr_movie_sub.insertCell(1);
td_movie_sub.setAttribute("width","491");
pElement = document.createElement("p");
txtNode_movie_sub = document.createTextNode("hello hello hello hello "+ loopi + " !!!");
pElement.appendChild(txtNode_movie_sub);
td_movie_sub.appendChild(pElement);
for (var loopj = 0 ; loopj < 5 ; loopj ++){
pElement = document.createElement("p");
txtNode_movie_sub = document.createTextNode("hello "+ loopi + " !!!");
pElement.appendChild(txtNode_movie_sub);
td_movie_sub.appendChild(pElement);
}
pElement = document.createElement("p");
pElement.setAttribute("style","font-size:x-large");
hrefElement = document.createElement("a");
hrefElement.setAttribute("href",xmlDoc.childNodes[1].childNodes[0].childNodes[3].text);
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[3].text);
txtNode_movie_sub = document.createTextNode("Here is a link ~~~~~~~~~~~~~~~!!!!!!!!!!!!!!!!!!");
hrefElement.appendChild(txtNode_movie_sub);
pElement.appendChild(hrefElement);
td_movie.appendChild(subMovieTbElement);
}
}
xml文件
<?xml version="1.0" ?>
<movie_list>
<movie1><imageSrc>1.jpg</imageSrc><eventElement>test('b.wma')</eventElement><imageTitle>this is "b.wma" !!!!</imageTitle><linkElement>test-2.htm</linkElement></movie1>
<movie2><imageSrc>1.jpg</imageSrc><eventElement>test('a.wma')</eventElement><imageTitle>this is "a.wma" !!!!</imageTitle><linkElement>test-2.htm</linkElement></movie2>
<movie3><imageSrc>1.jpg</imageSrc><eventElement>test('b.wma')</eventElement><imageTitle>this is "b.wma" !!!!</imageTitle><linkElement>test-2.htm</linkElement></movie3>
</movie_list>
如果正常的使用<input type="image" src="1.jpg" width="284" height="254" onClick="test('b.wma')" title="b.wma">可以正常运行,test这个脚本也能执行。但是如果我在一个table里面,动态生成这些代码(代码贴在后面),结果动态生成的时候,不管怎么设input的属性(如onclcik,onmouseover等,都不触发对应的事件),代码如下。
说了这么多,大体意思就是,动态生成的代码,触发不了脚本事件,请大家帮看一下。
html里面放了一个<div id="div1" style="width:850px;height:500px;overflow:auto"><table id="movie_list_tb"></table></div>来放动态生成的table。
function createMovieTable(){
var objTable = document.getElementById("movie_list_tb"); //table object
var tr_movie ;
var td_movie ;
var subMovieTbElement ; //each movie table object
var rowCount ; //movie count
var tr_movie_sub ;
var td_movie_sub ;
var txtNode_movie_sub ;
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); //xml object
xmlDoc.async="false" ;
xmlDoc.load("movies.xml") ;
rowCount = xmlDoc.childNodes[1].childNodes.length;
//alert(xmlDoc.childNodes[1].childNodes.length);
//table property initialization
objTable.setAttribute("width","850");
for(var loopi =0 ; loopi < rowCount ; loopi ++){
var imageElement ;
var pElement;
var hrefElement;
//movie loop
tr_movie = objTable.insertRow(loopi);
td_movie = tr_movie.insertCell(0);
subMovieTbElement = document.createElement("table");
subMovieTbElement.setAttribute("width","798");
//tr 1 bgcolor="#C1F0FF"
tr_movie_sub = subMovieTbElement.insertRow(0);
tr_movie_sub.setAttribute("bgcolor","#C1F0FF");
//td 1 height="16" colspan="2"
td_movie_sub = tr_movie_sub.insertCell(0);
td_movie_sub.setAttribute("height","16");
td_movie_sub.setAttribute("colspan","2");
txtNode_movie_sub = document.createTextNode("this is movie "+ loopi + " !!!");
td_movie_sub.appendChild(txtNode_movie_sub);
//tr 2 (two td)
tr_movie_sub = subMovieTbElement.insertRow(1);
//td width="297" height="256"
td_movie_sub = tr_movie_sub.insertCell(0);
td_movie_sub.setAttribute("width","294");
td_movie_sub.setAttribute("height","283");
imageElement = document.createElement("input");
imageElement.setAttribute("type","image");
imageElement.setAttribute("width","284");
imageElement.setAttribute("height","254");
imageElement.setAttribute("src",xmlDoc.childNodes[1].childNodes[0].childNodes[0].text);
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[0].text);
imageElement.setAttribute("onMouseOver","alert(11111);");//xmlDoc.childNodes[1].childNodes[0].childNodes[1].text
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[1].text);
imageElement.setAttribute("title",xmlDoc.childNodes[1].childNodes[0].childNodes[2].text);
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[2].text);
td_movie_sub.appendChild(imageElement);
//td width="491"
td_movie_sub = tr_movie_sub.insertCell(1);
td_movie_sub.setAttribute("width","491");
pElement = document.createElement("p");
txtNode_movie_sub = document.createTextNode("hello hello hello hello "+ loopi + " !!!");
pElement.appendChild(txtNode_movie_sub);
td_movie_sub.appendChild(pElement);
for (var loopj = 0 ; loopj < 5 ; loopj ++){
pElement = document.createElement("p");
txtNode_movie_sub = document.createTextNode("hello "+ loopi + " !!!");
pElement.appendChild(txtNode_movie_sub);
td_movie_sub.appendChild(pElement);
}
pElement = document.createElement("p");
pElement.setAttribute("style","font-size:x-large");
hrefElement = document.createElement("a");
hrefElement.setAttribute("href",xmlDoc.childNodes[1].childNodes[0].childNodes[3].text);
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[3].text);
txtNode_movie_sub = document.createTextNode("Here is a link ~~~~~~~~~~~~~~~!!!!!!!!!!!!!!!!!!");
hrefElement.appendChild(txtNode_movie_sub);
pElement.appendChild(hrefElement);
td_movie.appendChild(subMovieTbElement);
}
}
xml文件
<?xml version="1.0" ?>
<movie_list>
<movie1><imageSrc>1.jpg</imageSrc><eventElement>test('b.wma')</eventElement><imageTitle>this is "b.wma" !!!!</imageTitle><linkElement>test-2.htm</linkElement></movie1>
<movie2><imageSrc>1.jpg</imageSrc><eventElement>test('a.wma')</eventElement><imageTitle>this is "a.wma" !!!!</imageTitle><linkElement>test-2.htm</linkElement></movie2>
<movie3><imageSrc>1.jpg</imageSrc><eventElement>test('b.wma')</eventElement><imageTitle>this is "b.wma" !!!!</imageTitle><linkElement>test-2.htm</linkElement></movie3>
</movie_list>
...全文
相关推荐
多模态应用-基于文本+语音+视频输入的实时多模态情感识别Web应用实现-附详细原理流程介绍+项目源码-优质项目实战.zip
多模态应用_基于文本+语音+视频输入的实时多模态情感识别Web应用实现_附详细原理流程介绍+项目源码_优质项目实战
基于java的web校园二手平台系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频).zip
基于java的web校园二手平台系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频).zip
ssm+mysql实现的Java web酒店管理项目源码.zip
基于SSM+mysql得酒店管理系统,源码加视频,加毕业设计开题,毕业设计报告,代码全
ASP.NET源码——网博文字语音视频客服系统.zip
ASP.NET源码——网博文字语音视频客服系统.zip
聊天机器人如何隐性留存你的个人信息
聊天机器人并非简单对话工具,其底层运行涉及输入采集、结构化留存与多出口扩散三重机制。当用户输入身份证号、地址、健康信息等个人身份信息时,系统会自动识别、打标并路由至独立数据湖,即使删除聊天记录,这些PII字段仍长期存留。该过程依托‘履行合同所必需’等合规条款实现合法化,但实际构成隐性留存与二次利用风险。技术价值在于提升服务精准度,却常被用于用户画像构建、广告定向与商业线索转化。典型场景覆盖求职简历优化、AI健康咨询、旅行规划及儿童教育助手等高频应用。本文聚焦于揭示非恶意设计下的数据失控链路,帮助用户建立可操



