0

哈苏!一直在尝试将我的 Chrome 扩展程序转移到清单 2。除了一个调用 ajax 的脚本外,一切正常。我有一个包含需要传输到服务器的 JSON 内容的变量。

function sendlist(list){

jsontext = JSON.stringify(list);

$.ajax({
        url: amfurl + "user/listbookmarks/",
            dataType: 'text json',
        async: true,
        type: 'POST',
        processData: false,
            data: {'folders': jsontext}, 

        success: function(data){
            $('#importing').css('display','none');
            $('#importdone').css('display','block');
            console.log(data);      
        },
        error: function(xhr, status, error) {
            var err = eval("(" + xhr.responseText + ")");
        alert(err.Message);
}
});  
}

由于某种原因,ajax 部分根本没有执行。没有触发错误消息,也没有在服务器错误日志中。

所有内联脚本和一般脚本都包含在 popup.js 中。所以这可能不是问题。

有什么想法吗?

谢谢!

以下代码在以前的清单上完美运行

function importbookmarks(){
$('#formadd').css('display','none');
$('#importing').css('display','block');
_gaq.push(['_trackEvent', 'chromextension','importbookmarks', username]);
 chrome.bookmarks.getTree(function(bookmarks) {
        sendlist(bookmarks);
   });
}


function sendlist(list){
jsontext = JSON.stringify(list);
$.ajax({
        url: amfurl + "user/listbookmarks/",
            dataType: 'text json',
        async: true,
        type: 'POST',
    //  processData: false,
            data: {'folders': jsontext}, 

        success: function(data){
            $('#importing').css('display','none');
            $('#importdone').css('display','block');
            console.log(data);

        }
});  
}
4

1 回答 1

0

问题不在于功能。按钮执行没有正确调用它。这是我用来让函数在清单 2 中工作的代码

document.addEventListener("DOMContentLoaded", function () {
    document.getElementById("import-bookmarks").addEventListener("click", function () {
        importbook();return;
    });
于 2013-05-12T06:44:47.537 回答