1

我使用 .clone(true, true) 复制了 HTML,因为我想保留 JQuery 事件处理程序。当我通过 $.post 将其传递给 PHP 时,帖子失败并在 firebug 中给出以下错误

uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: jquery-1.7.2.js :: <TOP_LEVEL> :: line 7740" data: no]

我想以某种方式保留 HTML 及其 JQuery 事件处理程序,因为我正在编写一个脚本来保存用户所处的状态。

更新(添加代码)

//Save HTML w/ JQuery
GSaveState = new Object();
GSaveState['HTML'] = $('#content').clone(true, true);

$.post("DecoPOState.php", { SavedState: GSaveState},
        function(data){
            alert("Test");
        }
    );
4

1 回答 1

3

您的代码的问题在于您尝试发送一个 DOM 元素 - 由于显而易见的原因,您不能这样做。假设您要发送该元素的 HTML 代码,请使用$('#content').html()

var GSaveState = {
    HTML: $('#content').html();
};

但是,事件处理程序不包含在该字符串中,因为它们附加到元素而不是内联事件(即它们不是出现在 DOM 树中的属性)。

但是,保存应用程序的状态事件处理程序根本不重要。将变量用于您要保存的状态信息并将它们包含在您的 POST 数据中。

于 2012-06-04T20:26:17.107 回答