3

我的脚本中有两个函数,一个输出一些长的 HTML 字符串,另一个将这个字符串作为参数并处理它。

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>";

那是行不通的,因为您在其中包含未转义的引号和内容。

如果您曾经innerHTML获取页面上某个元素的 HTML,这将不是问题。

于 2012-09-19T18:36:54.270 回答
1

myHTML 是用一些 < 或 > 额外构造的,因此请验证 html 字符串

于 2012-09-19T18:32:30.900 回答
0

有一种方法可以将 html 文本作为参数传递给 javascript 函数:只需在 html 标记中替换所有特定字符,然后再将其传递给 javascript 函数。稍后在 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 回答