0

iamはjavascriptエラーを取得せず、コードは適切にレンダリングされるだけですが、サーバーはページにデータを表示しません。以下のコードを確認してください。

 <style type="text/css">
#marqueeborder {
    color: #cccccc;
    background-color: #EEF3E2;
    font-family:"Lucida Console", Monaco, monospace;
    position:relative;
    height:20px; 
    overflow:hidden;
    font-size: 0.7em;
}
#marqueecontent {
    position:absolute;
    left:0px;
    line-height:20px;
    white-space:nowrap;
}
.stockbox {
    margin:0 10px;
}
.stockbox a {
    color: #cccccc;
    text-decoration : underline;
}
</style>

 </head>

 <body>
  <div id="marqueeborder" onmouseover="pxptick=0" onmouseout="pxptick=scrollspeed">
<div id="marqueecontent">


<?php

    // Original script by Walter Heitman Jr, first published on http://techblog.shanock.com

    // List your stocks here, separated by commas, no spaces, in the order you want them displayed:
    $stocks = "idt,iye,mill,pwer,spy,f,msft,x,sbux,sne,ge,dow,t";

    // Function to copy a stock quote CSV from Yahoo to the local cache. CSV contains symbol, price, and change
    function upsfile($stock) { copy("http://finance.yahoo.com/d/quotes.csv?s=$stock&f=sl1c1&e=.csv","stockcache/".$stock.".csv"); }

    foreach ( explode(",", $stocks) as $stock ) {

        // Where the stock quote info file should be...
        $local_file = "stockcache/".$stock.".csv";

        // ...if it exists. If not, download it.
        if (!file_exists($local_file)) { upsfile($stock); }
        // Else,If it's out-of-date by 15 mins (900 seconds) or more, update it.
        elseif (filemtime($local_file) <= (time() - 900)) { upsfile($stock); }

        // Open the file, load our values into an array...
        $local_file = fopen ("stockcache/".$stock.".csv","r");
        $stock_info = fgetcsv ($local_file, 1000, ",");

        // ...format, and output them. I made the symbols into links to Yahoo's stock pages.
        echo "<span class=\"stockbox\"><a href=\"http://finance.yahoo.com/q?s=".$stock_info[0]."\">".$stock_info[0]."</a> ".sprintf("%.2f",$stock_info[1])." <span style=\"";
        // Green prices for up, red for down
        if ($stock_info[2]>=0) { echo "color: #009900;\">&uarr;";   }
        elseif ($stock_info[2]<0) { echo "color: #ff0000;\">&darr;"; }
        echo sprintf("%.2f",abs($stock_info[2]))."</span></span>\n";
        // Done!
        fclose($local_file); 
    }
?>
<span class="stockbox" style="font-size:0.6em">Quotes from <a href="http://finance.yahoo.com/">Yahoo Finance</a></span>

</div>
</div>
 </body>
 <script type="text/javascript">

    // Original script by Walter Heitman Jr, first published on http://techblog.shanock.com

    // Set an initial scroll speed. This equates to the number of pixels shifted per tick
    var scrollspeed=2;
    var pxptick=scrollspeed;
var marqueediv='';
var contentwidth="";
var marqueewidth = "";
    function startmarquee(){
        alert("hi");
        // Make a shortcut referencing our div with the content we want to scroll
        marqueediv=document.getElementById("marqueecontent");
        //alert("marqueediv"+marqueediv);
        alert("hi"+marqueediv.innerHTML);

        // Get the total width of our available scroll area
         marqueewidth=document.getElementById("marqueeborder").offsetWidth;
        alert("marqueewidth"+marqueewidth);
        // Get the width of the content we want to scroll
         contentwidth=marqueediv.offsetWidth;
        alert("contentwidth"+contentwidth);
        // Start the ticker at 50 milliseconds per tick, adjust this to suit your preferences
        // Be warned, setting this lower has heavy impact on client-side CPU usage. Be gentle.
        var lefttime=setInterval("scrollmarquee()",50);
        alert("lefttime"+lefttime);
    }

    function scrollmarquee(){
        // Check position of the div, then shift it left by the set amount of pixels.

        if (parseInt(marqueediv.style.left)>(contentwidth*(-1)))
            marqueediv.style.left=parseInt(marqueediv.style.left)-pxptick+"px";
        //alert("hikkk"+marqueediv.innerHTML);}
        // If it's at the end, move it back to the right.
        else{
            alert("marqueewidth"+marqueewidth);
            marqueediv.style.left=parseInt(marqueewidth)+"px";
        }
    }

    window.onload=startmarquee;

</script>
</html>

以下はサーバー表示ページです。

ストックティッカー

StockTicker画像を更新

私はあなたの提案でスクリーンショットを更新しました、私もhtmlに変更を加えて、子開発者によって何が表示されているかを確認しました

4

2 に答える 2

3

1)最初に</body>javascriptの後に移動します。
2)親div(id marqueeborder)の高さは20pxでオーバーフローが非表示になっているため、cild div(id marqueecontent)が切り取られ、htmlを次のように変更します。

<div id="marqueeborder" onmouseover="pxptick=0" onmouseout="pxptick=scrollspeed"></div>
<div id="marqueecontent">
...
</div>

#marqueecontentのcssをposition:absolute; left:0px;。に置き換えposition: relative;ます。

これがお役に立てば幸いです...

===更新===

私の例のように、JavaScriptをに移動するだけ<head>です。HTMLを変更する必要はありません!

于 2012-06-06T06:55:01.283 に答える
0

それが言った元のサイトを見て:

「stockcacheディレクトリに問題がある場合、スクリプトはすべてのストックエントリに対して「0.00↑0.00」を出力する可能性があります。むしろ、HTTPサーバーがPHPコードを適切に解析するのではなく、吐き出しているように見えます。これは次のようになります。サーバーの設定ミスやページの他の場所でのコードの競合に関連しています。残念ながら、問題のWebページのソースコード、サーバーOS、HTTPD、PHPのバージョンなど、コンテキストを詳しく知らなければ、より具体的にすることはできません。とその構成。」

ホスティングヘルプを調べたところ、phpが許可されている必要があり(html内にある場合)、. htaccessファイルを作成し、ホスティング会社から提供された行を追加する必要がありました。サポートとの短いチャットの後、問題が発生しました。解決されました**

于 2013-12-08T17:37:51.030 に答える