raviparikh Ответов: 0

Загрузка HTML-страниц условно с пользовательскими данными из popup.js


Привет,

Мне нужна твоя помощь! Я новичок в расширении chrome, и я застрял с нижеприведенным случаем, так что не могли бы вы мне помочь?

Нам нужно загрузить HTML страницы с пользовательскими данными условно во всплывающем окне по умолчанию из popup.js файл. Я добавил ниже код в popup.js. Когда пользователь входит в расширение, то мы храним его в chrome.storage с помощью API chrome.storage.sync.set() и получаем сведения об этом пользователе, следуя коду в popup.js файл.
---------------------------------------
chrome.storage.sync.get(["пользователь"], функция(элементы) {
если (!предметы.пользователь){
окно.местоположение.href = "login.html";
} еще {
$("#usernameId").текст ("Добро пожаловать" +элементы.пользователей.имя пользователя);
$("#totcretid").text(items.user.tot_credit);
$("#leftCreditId").text(items.user.left_credit);
окно.местоположение.href = "main.html";
}
});
---------------------------------
Он работает нормально, но данные пользователя не отражаются (имя пользователя, общий кредит, левый кредит и т. д.) В main.html Пейдж, не могли бы вы поправить меня, что я делаю не так?

Заранее спасибо!

Что я уже пробовал:

NOTE:- Below are files in my extension :-
------------
manifest.json
{
    "background": {
        "persistent": true,
        "scripts": [ "js/libs/jquery-2.2.3.min.js", "js/libs/aes.js", "js/libs/aes-json-format.js", "js/global.js", "js/background.js" ]
    },
    "browser_action": {
        "default_icon": "images/logo.png",
        "default_popup": "popup.html",
        "default_title": "LeadCapture"
    },
    "content_scripts":[{
        "css": [ "css/content.css" ],
        "js": [ "js/libs/jquery-2.2.3.min.js"],
        "matches": [ "http://*/*", "https://*/*" ],
        "run_at": "document_end"        
    }],
    "content_security_policy": "script-src 'self' 'unsafe-eval' https://code.jquery.com; object-src 'self'",
    "description": "LeadCapture",
    "homepage_url": "http://app.demo.25.com/",
    "icons": {
        "128": "images/logo128.png",
        "48": "images/logo48.png"
    },
    "web_accessible_resources": [ "/*" ],
    "manifest_version": 2,
    "name": "LeadCapture",
    "permissions": ["tabs", "activeTab", "cookies", "clipboardWrite", "storage", "http://app.demo.25.com/*" ],
    "version": "0.1"
}
popup.html page
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script type="text/javascript" src="js/libs/jquery-2.2.3.min.js"></script>
        <script type="text/javascript" src="js/global.js"></script>
        <script type="text/javascript" src="js/popup.js"></script>
    </head>
    <body style="width:350px;"></body>
</html>

popup.js file
$(function(){
    chrome.cookies.get({'url': objSettings.COOKIE_PATH, 'name': 'uuid'}, function(cookie){
        if(cookie){
            objSettings.UUID = cookie.value;
            chrome.extension.getBackgroundPage().objSettings.UUID = cookie.value;
        }
        chrome.tabs.query({active:true,currentWindow:true}, function(tab){
            //chrome.tabs.reload(tab[0].id);
            var jsScript = '';
            $.ajax({
                url: "http://app.demo.25.com/extension/content.js",
                type: 'GET',
                cache: false,
                async: false,
                success: function(data){
                    jsScript = data;
                }
            });
            chrome.tabs.executeScript(tab[0].id, {code: jsScript},function() {
                // If you try and inject into an extensions page or the webstore/NTP you'll get an error
                if (chrome.runtime.lastError) {
                    /*console.error(
                        "There was an error injecting script : \n" +
                            chrome.runtime.lastError.message,
                    );*/
                }
            });
            message = {from:'popup', task:'bootStrapExtension', uuid:objSettings.UUID, loadFile:'', showTab:'lg_extension_tab_3', tabUrl:tab[0].url};
            if(objSettings.UUID == '')
                message.loadFile = 'login.html';
            else{
                message.loadFile = 'main.html';
            }
            chrome.tabs.sendMessage(tab[0].id, message);
            chrome.storage.sync.get(["user"], function(items) {
                if (!chrome.runtime.error) {
                    if (!items.user) {
                        alert('IF');
                        chrome.browserAction.setPopup({popup:message.loadFile});
                    }
                    else
                    {
                        if(items.user.username.length > 0)
                            $("#customUsernameId").text('Welcome '+items.user.username);
                        if(items.user.tot_credit.length > 0)
                            $("#customTotCreditId").text(items.user.tot_credit);
                        if(items.user.left_credit.length > 0)
                            $("#customLeftCreditId").text(items.user.left_credit);
                        var userExt = {
                            username: items.user.username,
                            tot_credit: items.user.tot_credit,
                            left_credit: items.user.left_credit
                        };
                        chrome.storage.sync.set({ user: userExt }, function(result) { 
//chrome.browserAction.setPopup({popup:message.loadFile});
                            window.location.href = message.loadFile;
                        });
                    }
                }
            });
        });
    });
});

main.html
login.html
background.js
<content.js
.. etc

0 Ответов