新ブログ「ごんフラブログG2」

WordPressで始めてみました

[海外]バンドルされた複数のゲーム・PCアプリが購入できるサイト
humblebundle.com


ごんたろうのぼやきトップ

2018年06月19日

[JavaScript]document.writeの代替え

━━━━━━━━━━
■2018/06/23 追記
scriptタグなんかがhead内で動作しなかったので
完全なdocument.writeの代替えとしては成立しない気がする。

━━━━━━━━━━
document.writeはHTML5では非推奨とのことで

代替え処理を調べていたら
innerHTMLを使おうってな事になったのは良いんだけど
多くはid指定して・・・な感じ。
それではdocument.writeの代替えにはならないのでは?
と思ったのでさらに調べてみたら
良い感じのサンプルを公開されている方が
いらっしゃったので、関数化していじってみた。

勝手にブログカスタマイズ さんのページ
http://blog12345.seesaa.net/article/371431098.html


<script type="text/javascript">
function newDocumentWrite(str){
var e_ele=document.createElement('div');
e_ele.innerHTML=str;
var s=document.getElementsByTagName('script');
var sco=s[s.length-1];
sco.parentNode.insertBefore(e_ele, sco);
}
</script>
<script type="text/javascript">
newDocumentWrite(表示する文字列);
</script>


コレでOK。
(全角<>は半角に直してくださいね。)
さらに下記のようにコードを追加したら
固定されたクラス、もしくは引数を増やして
任意のクラスも付加できるようになる


function newDocumentWrite2(str){
var e_ele=document.createElement('div');
e_ele.innerHTML=str;
e_ele.classList.add('sample_class');
var s=document.getElementsByTagName('script');
var sco=s[s.length-1];
sco.parentNode.insertBefore(e_ele, sco);
}
function newDocumentWrite3(str,cls){
var e_ele=document.createElement('div');
e_ele.innerHTML=str;
e_ele.classList.add(cls);
var s=document.getElementsByTagName('script');
var sco=s[s.length-1];
sco.parentNode.insertBefore(e_ele, sco);
}


しかし、newDocumentWrite3を使用する場合classの引数を
投げてやらなかった場合の処理も追加しておくと吉かと。



function newDocumentWrite3(str,cls=""){
var e_ele=document.createElement('div');
e_ele.innerHTML=str;
if(cls != ""){
e_ele.classList.add(cls);
}

var s=document.getElementsByTagName('script');
var sco=s[s.length-1];
sco.parentNode.insertBefore(e_ele, sco);
}





以上です。
posted by ごんたろう(Gontaro-Soft) at 17:00 | Comment(0) | 備忘録/お知らせ

2018年06月17日

【HTML】[jQuery]data属性でハマる。

ちらほら同じようなとこでハマっている方がいるらしい。
HTMLのdata属性をjQueryで動的に追加、変更した場合に
HTML(DOM)とjQuery上で相互に反映しないので
ごちゃ混ぜにするとえらい目にあうっていう。
結局
data()ってのは使わずに
attr()にしぼってdata属性を扱うってことに落ち着いた。
$(this).prev("[data-hogehoge]")とか
["data-no"]で属性の指定をすることでいけるっぽい。
ハマると気付くまでに時間がかかるね^^;
posted by ごんたろう(Gontaro-Soft) at 18:59 | Comment(0) | 備忘録/お知らせ

2018年06月03日

[HTML5]document.writeは非推奨とのこと。

随分前からあった情報ですが
HTML5ではJavaScriptの
「document.write()」が非推奨らしく、
しかもめっちゃ非推奨、ダメダメダメ〜!
だそうです(笑

document.write()の代替えを模索中。

━━━━━━━━━━━━━━━━━━━━
2018/06/04 19:37 追記
document.write()はHTML5では強く非推奨のことだけど。
代替え処理ってなくない?代替えを作ろうとすると結構大変。
何がまずいかってjQueryではデキナイんよねw
うーん。簡単かもしれないけど死ぬほど難しい問題に
ぶち当たってる希ガス。
posted by ごんたろう(Gontaro-Soft) at 14:22 | Comment(0) | 備忘録/お知らせ
ブログランキング・にほんブログ村へ
にほんブログ村

インターネット・コンピュータランキング