Javascriptで複数のjsonを読み込みたい
Javascriptについてご教授頂きたい点があり、質問しました。
私事で、現在とあるサイトの修正を行なっています。そのサイト内の更新情報の部分がJavascriptで制作されており、具体的にはjson形式のファイルをJavascriptで読み込み、HTMLとして出力する形になっています。
質問下部が、そのJavascriptです。
現在はjsonファイルをひとつだけの読み込んで表示しているのですが、
今後コンテンツの拡充するため、2種類のjsonを読み込む必要がでてきました。
jsonファイルの中身や項目ついては2種類ともほぼ同じような内容です。
考えられる様々な方法を試してみたのですが、うまくいかず、質問させていただきました。
どなたかお力添えを頂けないでしょうか。
var result2 = '';
var rec2 = 5;
var jsonHostname = "元々のJSONのディレクトリURL";
var jsonUrl = '';
jsondata2 = "";
function callback_whats_new(data2) {callbackCommon2(data2);}
function callbackCommon2(data2) {
jsondata2 = data2;
if(typeof jsondata2 == 'object'){
draw2();
} else {
indexDiv2.innerHTML = '<br><div class="t_m" style="text-align:left; margin-left:8px;">当サイトをご覧いただくには、<br>JavaScriptとFlashの再生環境が必要となります。<br><br>' +
'詳しくは「<a href="">ご利用に際して</a>」をご覧ください。<br><br></div>';
}
}
function getIndex2(n2) {
var list = n2;
var type = list;
indexDiv2 = document.getElementById(type);
filename = type;
var url = jsonHostname + filename + '.json?' + (new Date().getTime()); 元々入っていたjsonファイルののURL
var idval = 'jsonp_' + type;
var charset = 'utf-8';
charset = charset ? charset : 'utf-8';
var headObj = document.getElementsByTagName('head')[0];
var scriptTag = document.getElementById(idval);
if (scriptTag) {
headObj.removeChild(scriptTag);
}
scriptTag = document.createElement('script');
scriptTag.type = 'text/javascript';
scriptTag.id = idval;
scriptTag.charset = charset;
scriptTag.src = url;
headObj.appendChild(scriptTag);
}
function draw2(e,n1, n2, n3, n4) {
result2="";
if (typeof n1 != 'undefined') turn = n1;
if (typeof n2 != 'undefined') cat_2 = n2;
if (typeof n3 != 'undefined') category = n3;
hl = jsondata2.headline;
if(typeof rec2!='number'){
hlLength = hl.length;
}else if(rec2 > hl.length){
hlLength = hl.length;
}else{
hlLength = rec2;
}
tMon = 0;
for (var i = 0; i < hlLength; i++) { wrHTML2(i); }
if (result2) {
indexDiv2.innerHTML = result2;
} else {
indexDiv2.innerHTML = '<span class="t_m">該当する情報はありません。</span>\n';
}
if (typeof list == 'object' && listNum < list.length) getIndex2(list);
}
function wrHTML2(n) {
var f = 0;
var f2 = 0;
var icon="";
var date = (jsondata2.headline[n].date) ? jsondata2.headline[n].date : "";
if (cat_2 && cat_2 != Number(date.substr(4,2))) return;
var uri = (jsondata2.headline[n].uri.uri) ? jsondata2.headline[n].uri.uri : "";
var tar = jsondata2.headline[n].uri.target;
var no = jsondata2.headline[n].txt.no;
var txt = (jsondata2.headline[n].txt.txt) ? jsondata2.headline[n].txt.txt : "";
var jsOpenWinFlg;
if (-1!= uri.indexOf("/html/")){
if (-1!= (jsOpenWinFlg = uri.indexOf("/report/"))){
var aElementAttr = 'href="JavaScript:popupWin(\''+uri+'\',\'subwin\',\'900\',\'700\');"';
}else if (-1!= (jsOpenWinFlg = uri.indexOf("/news/other/"))){
var aElementAttr = 'href="JavaScript:popupWin(\''+uri+'\',\'subwin\',\'900\',\'700\');"';
}else{
var aElementAttr = 'href="'+uri+'" target="'+tar+'"';
}
}else{
var aElementAttr = 'href="'+uri+'" target="'+tar+'"';
}
if (date) date = date.substr(2,2) + '/' + date.substr(4,2) + '/' + date.substr(6);
result2 += '<table width="100%"><tr>';
result2 += '<td width="17%" valign="top">' + date + '</td>';
result2 += '<td width="83%" valign="top">';
result2 += '<a ' + aElementAttr + '>' + txt + '</a>';
result2 += '</td>';
result2 += '</tr></table>';
}
お礼
ご回答有難うございます 少し気になったのですが 得たい値はマッチ結果より右の文字列であって マッチする文字列そのものでは無いのですが ご掲示頂いた例で可能でしょうか? 自分が例に出したのは htmlソースで検索かける感じで 挙動としてはgetElementsByName等とほぼ同様です (厳密には違いますが)