1 PUREST◆gAxC

掲示板改造でテーブルの位置

リクエストがあったので、掲示板改造で分割したテーブルの位置の表示を書き込みごとに位置をずらす方法を公開します。
何分にも省略して書くのが好きな性分なんで、めちゃくちゃ省略して書いてみました。
3.のランダムヴァージョンは作ったときは配列使ったけど、いらないような気はしてたので、取ってみたらやっぱりいりませんでした(爆)
ちなみにmatchメソッドなんか使わなくてもdocument.getElementsByTagName('hr').lengthとかで取得できるんですが、一応matchメソッドを使ったほうがより多くのブラウザに対応する可能性がある(といよりブラウザ判別しなくて済む)ということで、matchさせてみました。
すべて動作確認済みですが、面倒なのでサンプルは出しません。(暇があったら出すかも…)
しつこいようですが、Opera対応のためにはCSSをlink要素で外部化してください。
(PC)
2 PUREST◆gAxC
1.書き込みを左右交互に表示

document.write('<style>table{width:50%;border-width:5;border-style:ridge;border-color:silver}</style>');
document.write('<div align="left"><table><tr><td align="center"><font size="7">BBS</font>');
window.onload=function(){
myHTML = document.body.innerHTML;
myHR = myHTML.match(/<hr size=.?1.?>/gi);
myHR2 = /<hr size=.?1.?>/i;
for(i=0;i<myHR.length;i++){
myALIGN =( i%2 == 0 ) ? 'right' : 'left';
myTABLE='</td></tr></table></div><br><div align="' + myALIGN + '"><table><tr><td>';
myHTML=myHTML.replace(myHR2,myTABLE);}
window.document.body.innerHTML = myHTML + '</td></tr></table>';
}
(PC)
3 PUREST◆gAxC
2.書き込みを真ん中、左、右の順に表示

document.write('<style>table{width:50%;border-width:5;border-style:ridge;border-color:silver}</style>');
document.write('<div align="center"><table><tr><td align="center"><font size="7">BBS</font>');
window.onload=function(){
myHTML = document.body.innerHTML;
myHR = myHTML.match(/<hr size=.?1.?>/gi);
myHR2 = /<hr size=.?1.?>/i;
for(i=0;i<myHR.length;i++){
myALIGN =( i%3 == 0 ) ? 'left' : ( i%3 == 1 ) ? 'right' : 'center';
myTABLE='</td></tr></table></div><br><div align="' + myALIGN + '"><table><tr><td>';
myHTML=myHTML.replace(myHR2,myTABLE);}
window.document.body.innerHTML = myHTML + '</td></tr></table>';
}
(PC)
4 削除済
5 PUREST◆gAxC
3.書き込みをランダムに表示

var pb='';
pb+='<style>table{width:50%;border-width:5;border-style:ridge;border-color:silver}</style>';
MyRan=Math.floor(51*Math.random());
MyRan2=50-MyRan;
pb+='<table style="margin-left:'+MyRan+'%;margin-right:'+MyRan2+'%"><tr><td align="center">';
pb+='<font size="7">BBS</font>';
document.write(pb);
window.onload=function(){
myS = document.body.innerHTML;
repT = /<hr size=.?1.?>/gi;
repT2 = /<hr size=.?1.?>/i
myHai = myS.match(repT);
for(i=0;i<myHai.length;i++){
myMar = Math.floor(51*Math.random());
myMar2 = 50-myMar[i];
repW = '</td></tr></table><br><table style="margin-left:' + myMar + '%;margin-right:' + myMar2 + '%"><tr><td>';
myS = myS.replace(repT2,repW);}
document.body.innerHTML = myS + '</td></tr></table>';
}
(PC)
6 lj;j:jo:
ojopjopjop
(PC)