2012-04-16 1 views
2

私はこのサイトをIE6と互換性のあるものにする必要があります。私はしなかったことを望むが、それは人生である。IE6のテーブルに不要な空白を追加するcfloopを修正しましたか?

ここに問題があります。 cfloop query = "thisqueryName"これは、オーバーフロー-y:スクロールテーブルの先頭に500〜600pxの空白を追加しています。

余分な空白を補うためにテーブルの上部の位置を強制的に試みましたが、運はありませんでした。

<div id="myDivid" > 
<table id="thistablename"> 
    <!--- Here is the problem ---> 
<cfloop query="thisqueryname"> 
      <!--- End of Problem Code --> 
    <cfquery name="thisotherqueryname" datasource="#Application.dsn#"> 
      SELECT name 
        , frequency 
        , ninjaskills 
      FROM thistablename 
      WHERE tid = #ID# 
        AND status = 'A' 
     </cfquery> 
     <cfquery name="anotherqueryname" datasource="#Application.dsn#"> 
      SELECT somestuffhere 
      FROM thisothertablenamehere 
      WHERE ID = #ID# 
     </cfquery> 
    <tr> 
     <th class="numCol"></th> 
        <!--- etc etc etc ---> 

(いや、これは私の名前付けスキーマではありません(:名前はこの問題を回避するために

任意の修正や有益な提案)無実とすべてのことを保護するために変更されているいただければ幸いです

を!
+1

とサプレッサで

  • 他のすべてが失敗した、とあなたはまだ開始時に空白を取得する場合、あなたは「ハック」することができますが、あなたが[jsFiddle](HTTP上のテストケースにすることができます:/を/ jsfiddle。net /)または[JS Bin](http://jsbin.com/)?生成されたHTML/CSSを見たいのですが、サーバー側のColdFusionコードではありません。テストケースがIE6で問題を再現することを確認します。 – thirtydot

  • +0

    それはイントラネットサイトであり、私は情報の一部を公開したくないので、たくさん書き直さなければならなかったでしょう。 しかし、最終的に私はこの問題を解決する方法を打ちました...しかし、それは私が本当に好きではなかった方法でした。テーブルの行を生成してループする代わりに、私は個々のテーブルを生成しました。私が期待していたよりも悪く見えますが、その膨大な量のホワイトスペースがあったときほど悪くはありません。 (私の他の質問についてはあなたのコメントを見ました_after_私はそれを削除しました。 – mawburn

    答えて

    4

    あなたにはいくつかの要因があります。 Know what generates whitespaceと戦う前に。

    1. は、ページの一番上にあなたのクエリとループを移動し、<cfsilent>でそれらをラップ

    2. 生成している実際のHTMLを<cfsavecontent>に入れます。

    3. 構築した変数をテンプレートの表示可能領域(<cfsilent>コールの外)に出力します。

    4. Application.cfcやApplication.cfmのようなものがあれば、すべての関数呼び出しの出力属性がfalse(Application.cfcの場合)に設定されていることを確認して空白を適切に抑制していることを確認してください。またはApplication.cfmの場合は、開始時に<cfsetting enablecfoutputonly=true>と末尾に<cfsetting enablecfoutputonly=false>があります。 <cfcontent type="text/html; charset=UTF-8" reset="true" />

    0

    ラップクエリの周り<cfsilent>。助けるべきである。

    また、その後、<cfoutput>タグ内に出力にしたい部分のみをラップページの上部に<cfsetting enableCFoutputOnly = "yes">を設定します。

    0

    もう1つの方法は、実行していることを2つのループに分割することです。最初のループで後続のクエリのデータを使用してクエリを操作します。次に、2番目のループは純粋に出力されます。それはあなたのテーブルの余分な空白をたくさん持つことからそれを保持する必要があります。

    0

    先頭には<cfsetting enablecfoutputonly="true" />、最後には<cfsetting enablecfoutputonly="false" />に設定し、具体的にはコンテンツをブラウザに出力するには<cfoutput>...</cfoutput>を使用してください。空白を含め、cfoutputタグ内のコンテンツのみが画面に出力されます。

    0
    <cfprocessingdirective suppressWhiteSpace = "yes"> 
    

    または、CF管理者の[空白管理を有効にする]設定。

    関連する問題