ショッピングサイト構築システムのHTML宣言文について。
Webに関しての質問です。有料のインターネットショップ構築サービスを利用してネットショップを作っているのですが、デザインが自由とうたっている割に自由度が狭くて困っています。
ショップ内にjqueryのSlide Toggleを使用しているのですが、windowsのブラウザで項目を収納する際、スライドが完了する直前に項目の内容が一瞬全部表示されてちらついてしまうというエラーが出ています。(IE6/IE7で確認)
調べたところhtmlの宣言文が原因とのことで、ショップサイトのサーバーとは別の場所で試しましたらエラーが回避されました。
しかし、ショップサイト構築サービスではhtmlそのものを編集できなく、bodyタグの上は編集できないような形になっています。
デフォルトではなんの宣言文もない<html>タグだけなので、どうにか<html>を置き換えるなどして宣言文を書きたいと思っているのですが、いい方法はありますでしょうか。
宜しくお願い致します。
回答(1)
1.

一回バーチャル領域に書き出してからbodyに貼り付ければ?
documentfragmentとかに貼っておけば生成されても見えないはず。
var fragment = document.createDocumentFragment();
ここを作業場にして貼ってたり弄ったり作っておいて最後に
document.body = fragment; 特定node = fragment;で変な先見えはなくなると思うが。
>windowsのブラウザで項目を収納する際、スライドが完了する直前に項目の内容が一瞬全部表示されてちらついてしまうという
ただそこまでせずとも原因は
作った項目をdocument.body以下にどんどんくっつけてるので処理が重くなったときにくっつけきれない間にロード完了した部分だけ表示が一瞬入ってしまうのではないの?何かの適当な変数内で加工追加したあとにそれを表示したいノードにくっつけないとそういう風に見えてしまうんじゃないの?
ご回答ありがとうございます。
ただ、Java初心者なものですから、ちょっと内容がわかりません、、。
頂いた回答を元に、色々調べてみようかと思います。
jQueryなどは初心者でも使いやすいようですが、やはりJavascriptの基礎を理解していないとこういう時にうまく使えないですね、、。
勉強になります。
ありがとうございます。
コメント(5)
html タグの属性なんか(lang="jp" とか)は、追加できるかもしれないけど、
質問で言われる宣言文というのは、DOCTYPE のことなのでは?
DOCTYPEは、HTMLより上位だからダメでは?
>>#1. BLUEPIXYさま
コメントありがとうございます。
おっしゃる通り、htmlタグの上に記載するDOCTYPEを追加したいんですが、やはりjavascriptなどを駆使しても無理なのでしょうか。。。
bodyタグ以下にjavascriptを直接書き込むなりリンクするなりの編集しかできないのですが、、、。
>>#2
新しく開く、ウィンドウとか、
IFRAMEにだったら、DOCTYPE を記述した新しいページを作成できるので、それは、できると思いますが、
既存のページで、JavaScriptを使ってDOCTYPE を設定することは、
HTMLの範疇外なので(おそらく)できないと思います。
DOM1の仕様
http://www.doraneko.org/misc/dom10/19981001/level-...
(doctype の部分)を見ると、
「DOM1は文書型宣言の編集をサポートせず」とあるので、(#3でも言うような新しいページを作成する以外)
“できない”ですね。


