2016-08-04 11 views
0

Ich habe ein Problem über Öffnen Sie den Dialog aus JavaScript-Datei (Config in Content_Script). Ich verwende "chrome.windows.create" und habe einen Fehler: "Eigenschaft 'create' von undefined kann nicht gelesen werden." Hast du eine Idee? Vielen Dank! Meine Quelle:Chrome-Erweiterung - Öffnen Sie den Dialog von Javascript-Datei (Config in Content_Script)

**manifest.json** 
 
{ 
 
    "name": "ABC", 
 
    "short_name": "ABC", 
 
    "description": "My tool", 
 
    "permissions": [ "contentSettings", "tabs", "http://*/*", "https://*/*" , "https://localhost/*", "https://localhost/*/*", "contextMenus"], 
 
    "homepage_url": "http://www.localhost/GMS", 
 
    "update_url": "https://clients2.google.com/service/update2/crx", 
 
    "manifest_version": 2, 
 
    "version": "1.0.4", 
 
    "icons": { 
 
    "16": "img/icon-16.png", 
 
    "48": "img/icon-48.png" 
 
    }, 
 
    "browser_action": { 
 
    "default_icon": "img/icon-128.png", 
 
    "default_popup": "background.html" 
 
    }, 
 
    "content_scripts": [{ 
 
    "css": [ "addon_tool.css" ], 
 
    "js": [ "jquery.js", "config.js","myJs.js"] 
 
    }] 
 
} 
 

 
**myJS.js** 
 
$.ajax({ 
 
      type: "POST", 
 
      data:{UserName: 'name'}, 
 
      dataType: "json", 
 
      url: "https://localhost/...", 
 
      success: function (data) { 
 
       alert('OK'); 
 
      }, 
 
      error: function (xhr, status, error) { 
 
       try { 
 
        ***chrome.windows.create({ 'url': 'PopupForm.html', 'type': 'popup' }, function (window) {*** 
 
        }); 
 
       } catch (e) { 
 
        alert(e.message); 
 
       } 
 
      } 
 
     });
**PopupForm.html** 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title></title> 
 
\t <meta charset="utf-8" /> 
 
</head> 
 
<body> 
 
    <button id="btnSubmit" >Submit</button> 
 
    <button id="btnCancel" >Close</button> 
 
</body> 
 
</html>

Antwort

1

chrome.windows.*can't be accessed in content scripts, würden Sie diese Logik Popup-Seite oder Hintergrund Seite verschieben müssen.

  1. Umbenennen background.html zu popup.html. Der vorherige Name weist darauf hin, dass Sie möglicherweise über die Hintergrundseite und die Popup-Seite verwirrt sind.
  2. Hinzufügen background page.
  3. Verschieben Sie Ihre myJS Logik auf Hintergrundseite.
+0

Vielen Dank für Ihre Antwort. Ich muss jedoch Inhaltsskripts verwenden. Mein Problem ist Showdialog vom Inhaltsskript (myJS.js). –