3

スクリプトには 2 つの関数があります。1 つは長い HTML 文字列を出力する関数で、もう 1 つはこの文字列をパラメーターとして受け取って処理する関数です。

function myFirstFunction() {
    //output some HTML
    return myHTML;
}

var myHTML = myFirstFunction();

function mySecondFunction(myHTML) {
    //do something with parameter
}

なんらかの理由で、Chrome JS コンソールに次のエラーが表示され続けます: 「Uncaught SyntaxError: Unexpected token <」

おそらく、HTML の小さなチャンクで動作しているように見えるため、出力された HTML がかなり長いという事実によるものだと思いました。何かご意見は?どうも!

4

4 に答える 4

2

ここに問題があります:

myHTML は、次のようなHTML文字列です。

var myHTML ="<div id="foo"><div id='hello'>hello</div><div id="bar">bar'asdf'asf"sdf"&soidf;</div></div>";

その中にエスケープされていない引用符やものが含まれているため、それは機能しません。

ページ上の要素の HTML を取得していた場合innerHTML、これは問題になりません。

于 2012-09-19T18:36:54.270 に答える
1

myHTML はいくつかの < または > エクストラで構成されているため、html 文字列を確認してください

于 2012-09-19T18:32:30.900 に答える
0

html テキストをパラメーターとして javascript 関数に渡す方法があります。javascript 関数に渡す前に、html タグ内のすべての特定の文字を置き換えるだけです。後でJavaScriptで、特定のすべての文字を通常に戻すだけです。秘訣は、javascript が除外した文字のみを認識するようにすることです。

例:

[[C#]]

string urlString = "http://localhost:8698/DotNetNuke_Community_06.02.01_Install/Default.aspx?TabID=157&categoryId=92&newCategoryId=92";

                urlString = urlString.Replace("<", "µ");
                urlString = urlString.Replace(">", "Ħ");
                urlString = urlString.Replace("&", "€");
                urlString = urlString.Replace(":", "¥");
                urlString = urlString.Replace("=", "¬");
                urlString = urlString.Replace("/", "ä");
                urlString = urlString.Replace("?", "¿");
                urlString = urlString.Replace("'", "ʅ");
function(urlString);

[[Javascript]]

function(urlString){
urlString = urlString.replace(/µ/g, "<");
        urlString = urlString.replace(/Ħ/g, ">");
        urlString = urlString.replace(/€/g, "&");
        urlString = urlString.replace(/¥/g, ":");
        urlString = urlString.replace(/¬/g, "=");
        urlString = urlString.replace(/ä/g, "/");
        urlString = urlString.replace(/¿/g, "?");
        urlString = urlString.replace(/ʅ/g, "'");
}

よろしく、

于 2012-12-21T16:59:02.357 に答える
-1

文字列リテラルではなく、文字通りhtmlを渡そうとしていると思います。次のようなものを試してみると:

myFunction(<html><body>...);

それは間違いなくエラーになります。文字列リテラルを使用する必要があります。

myFunction("<html><body>...");

引用符を含む html を使用している場合は、それらをエスケープするか、一重引用符を使用する必要があります。

"<div id="name">" 

は有効な文字列ではありません。次のいずれかを行います。

"<div id=\"name\">" or
'<div id="name">'
于 2012-09-19T18:37:07.110 に答える