動的ウィジェットを表示するjsライブラリを作成しました。これは正常に機能しますが、同じページに2つのウィジェットを表示したい場合、問題が発生します。実際、2番目のウィジェットのみを表示し、最初のウィジェットは表示しません
最初のウィジェット
<script type="text/javascript">
wgppn_cat = 2;
wgppn_lines = 4;
wgppn_width = '400px';
wgppn_bgcolor = '#00C000';
</script>
<script src="wgppn.js" type="text/javascript"></script>
2番目のウィジェット
<script type="text/javascript">
wgppn_cat = 5;
wgppn_lines = 4;
wgppn_width = '400px';
wgppn_bgcolor = '#FF0000';
</script>
<script src="wgppn.js" type="text/javascript"></script>
これは私のjsライブラリwgppn.jsです
var wgppn_lines;
var wgppn_width;
var wgppn_bgcolor;
var wgppn_cat;
wgppn_width = typeof wgppn_width == 'string' ? wgppn_width : '300px';
wgppn_lines = typeof wgppn_lines == 'number' ? wgppn_lines : 3;
wgppn_bgcolor = typeof wgppn_bgcolor == 'string' ? wgppn_bgcolor : '#003366';
wgppn_cat = typeof wgppn_cat == 'number' ? wgppn_cat : 0;
var script_tag = document.createElement('link');
script_tag.setAttribute("type","text/css");
script_tag.setAttribute("rel","stylesheet");
script_tag.setAttribute("href","style.css");
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
var script_tag1 = document.createElement('script');
script_tag1.setAttribute("type","text/javascript");
script_tag1.setAttribute("src","jquery-latest.pack.js");
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag1);
var script_tag3 = document.createElement('div');
script_tag3.setAttribute("id",'box');
(document.getElementsByTagName("body")[0] || document.documentElement).appendChild(script_tag3);
var myRequest = CreateXmlHttpReq(myHandler);
var url = window.location.href;
myRequest.open("GET",url,true);
myRequest.send(null);
function CreateXmlHttpReq(handler) {
var xmlhttp = null;
try {
xmlhttp = new XMLHttpRequest();
}
catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
xmlhttp.onreadystatechange = handler;
return xmlhttp;
}
function myHandler() {
if (myRequest.readyState == 1) {
var wHTML = "";
wHTML += ('<div style="text-align:center;margin-top:180px;">');
wHTML += ('<img src="loader.gif" border="0" width="66" height="66"/>');
wHTML += ('</div>');
document.getElementById('box').innerHTML = wHTML;
}
if (myRequest.readyState == 4 && myRequest.status == 200) {
loadcontent(wgppn_lines,wgppn_width,wgppn_bgcolor,wgppn_cat);
}
}
function loadcontent(wgppn_lines,wgppn_width,wgppn_bgcolor,wgppn_cat) {
$(document).ready(function($) {
var url = "data.asp?ln=" + wgppn_lines + "&cat=" + wgppn_cat
$.ajax({
url: url,
dataType: 'json',
scriptCharset: 'utf-8' ,
contentType: 'application/x-www-form-urlencoded',
success: processJSON
});
$('#box').css("width",wgppn_width);
});
}
function processJSON(result) {
var wHTML = "";
wHTML += ('<div class="titolo_box" style="background-color:' + wgppn_bgcolor + '"></div>');
wHTML += ('<ul>');
jQuery.each(result.news, function(i,val){
wHTML += ('<li>');
wHTML += ('<div class="titolo_triplo">');
wHTML += ('<img class="img3" src="' + val.pic + '" border="0" width="40" height="40"/>');
wHTML += ('<a href="' + val.url + '" target="_blank" title="' + val.title + '">' + val.title + '</a>');
wHTML += ('</div>');
wHTML += ('<div class="strillo_triplo">');
wHTML += ('<a href="' + val.url + '" target="_blank" title="' + val.title + '">' + val.strillo + '</a>');
wHTML += ('</div>');
wHTML += ('</li>');
});
wHTML += ('</ul>');
document.getElementById('box').innerHTML = wHTML;
}