たぼさんの部屋

いちょぼとのんびり

android標準ブラウザの問題解決:ver3_4 ajaxで取得したコンテンツをコンテナにセットするとこでouterHTML

初期アクセス

既存コンテンツをコンテナに流し込むとこ
ここは問題なく動作している。

//fragmentを生成して、既存のコンテンツを必要な部分のみfragmentに移動します。
var mainFragment = document.createDocumentFragment();
mainFragment.appendChild(document.getElementById('maincol'));
var subFragment = document.createDocumentFragment();
subFragment.appendChild(document.getElementById('navigation'));

//既存コンテンツのbodyをなくし、新しいコンテナを書き込みます。
document.body.innerHTML = "";
document.body.appendChild(self.container.outerContainer);
console.log(mainFragment);
//新しいコンテナに退避しておいた既存コンテンツを書き込みます。
self.container.mainContainer.appendChild(mainFragment);
self.container.subContainer.appendChild(subFragment);

ajaxで取得したDOMをコンテナにセットするとこ

これだと、innerになってしまい、div id=maincolがなくなってしまう。

var main = newDom.getElementById('maincol');
var fragment = document.createDocumentFragment();
self.container.mainContainer.innerHTML = main.innerHTML;

こう変更したら意図通り動作するように・・

innerHTML ではなく、 outerHTMLをセットしました。

var main = newDom.getElementById('maincol');
var fragment = document.createDocumentFragment();
self.container.mainContainer.innerHTML = main.outerHTML;

//ここでコンテナの動的スタイルをセットします。
self.setHeightToContainers(self);