2011-04-19 19 views
1

私は古典的なASPを初めて使いました。ASPのJavascriptでページが正しく生成されない

一連のチェックボックスでイベントを処理するJavaScriptを実行しているClassic ASPページがあります。生成されたHTMLを取り出して独自のページに貼り付けると、JavaScriptは意図したとおりに動作しますが、ASPではバグが発生しています。

私は、物事がページに読み込まれたときにそれが関係していると推測していますが、わかりません。私はJavaScriptと下のASPページを添付しました:

ASPコード

http://pastebin.com/hKgfMRPc

はJavaScript

+0

まさに「バグ」あなたの入力のための –

答えて

1

をまず第一に、あなたが出始めている場合私は古典的なASPを落とし、.NETを学ぶだろう。 .netが少し圧倒しているようなら、PHPには従来のASPと多くの設計上の類似点がありますが、よりサポートされています。古典的なASPは本当に今になっている!

また、各ページの上部に、あなたが持っている必要があります。

<% Option Explicit %> 

これは常に使用する必要があり、それはデバッグの10倍をより容易にするよう、あなたが変数、およびその他の有用なものを再定義する場合、それはエラーをスローします。リリース中でもすべてのページに貼り付けてください。

また、変数を次元にすると、これは '変数を宣言する'という別の方法です。したがって、ASPページは次のようになります:

<% 
    Option Explicit 

    Dim xml 
    Dim strReturnedText 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
.... 

また、オブジェクトを削除することを忘れないでください。そうしないと、それらのオブジェクトはメモリに残ります。関数を次のように変更してください。

<% 
    'Load XML 
    set xml = Server.CreateObject("Microsoft.XMLDOM") 
    xml.async = false 
    xml.load(Server.MapPath("/site-index.xml")) 

    'Load XSL 
    set xsl = Server.CreateObject("Microsoft.XMLDOM") 
    xsl.async = false 
    xsl.load(Server.MapPath("/site-index.xsl")) 

    'Get the response 
    strReturnedText = xml.transformNode(xsl) 

    'Clean up the object 
    set xml = nothing 

    'Transform file 
    Response.Write(strReturnedText) 
%> 

エラーメッセージが表示されていないため、コードをデバッグするのは難しいです。これらの変更を行った後に表示されるエラーメッセージを貼り付けると、それを簡単に特定できるはずです。出力を持つあなたのコメントに応えて

編集

<?xml version="1.0" encoding="UTF-16"?> 

あなたはブラウザが約混乱し得る可能性があり、実際のXMLファイルをプリントアウトしようとしているので、これはエラーがスローされることがありますHTML文書をレンダリングしています。

<xmp>で出力をラップしてみて、問題が解決するかどうかを確認するために、一時的なテストをタグ:

'Transform file 
Response.Write("<xmp>" & strReturnedText & "</xmp>") 
+0

おかげですか。 xml.transformNodeの下にset xml = nothingを置く必要があるようですので、先に進んでそれを行いました。私もその時点でxsl = nothingを設定しました ASPページによって生成されるHTMLは次のとおりです。 http:// pastebin。com/STP9pe0p チェックボックス「オープナー」は、リストアイテムを「オープナー」クラスでフィルタリングし、1つだけ表示されます。 ASPページでは、何をクリックしても項目はすべて消えます。 – okMonty

+0

@User、答えを編集しました。どうやったらどうなるのか教えてください –

+0

xmpタグを出力の周りに置くと、ページはXMLだけをプレーンテキストとしてレンダリングします。残りのHTMLはソースでのみ表示されます。 – okMonty

関連する問題