2012-04-16 4 views
1

Я очень новичок в мире хром-расширений.Показать конкретную строку исходного кода в всплывающем окне

Я прочитал учебные страницы «привет мир» и попытался получить понимание content_scripts и background.html - но я, возможно, передозировал и, похоже, не нашел ответа на что-то, что я уверен простая задача.

В закладке сайт содержит следующую Hidden HTML:

<div class="XYZ"> 
<input id="form_ID" type="hidden" value="REF_CODE#Product_CODE#Product Name#"> 
</div> 

То, что я пытаюсь выяснить, как я могу Отобразите

  • RefCode
  • ProductCode
  • Наименование продукта

В popup.html

Я не смотрю на редактирование html или манипулирование им каким-либо образом. Он строго отображает скрытый HTML-код в легко читаемом всплывающем окне.

Надежда, что имеет смысл ..

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

ОБНОВЛЕНИЕ:

Popup.html

<html> 
<head> 
<script> 
function readIds() { 
    console.log('Send request to content script'); 
    document.getElementById("response").innerText = "Requesting..."; 
    chrome.tabs.getSelected(null,function(tab){ 
     chrome.tabs.sendRequest(tab.id, {cmd: "readIds"}, function(response){ 
     console.log('Response from page is:' + response); 
     document.getElementById("response").innerText = JSON.stringify(response); 
     }); 
    }); 
} 
</script> 
</head> 
<body style="width:400px;"> 
<a href="javascript:readIds();return false;">Click to read ids</a> 
<pre id="response"></pre> 
</body> 
</html> 

Content_script.js

// add a listener to get messages from background, popup 
chrome.extension.onRequest.addListener(function (request, sender, sendResponse) { 
     switch (request.cmd) { 
      case "readIds": 
       console.log("readIds", request); 
       document.getElementById("productID"); 
       sendResponse({refCode:1, productCode: 2, productName: 3}); 
       break; 
     } 
}); 

manifest.json

{ 
    // Required 
    "name": "WP Debug", 
    "version": "0.0.1", 

    // Recommended 
    "description": "A plain text description", 
    "icons": { "48": "icon.png" }, 
    //"default_locale": "en", 

    // Pick one (or none) 
    "browser_action": { 
    "default_icon": "icon.png", // optional 
    "default_title": "WP Debug",  // optional; shown in tooltip 
    "popup": "popup.html" 
    }, 

    "permissions": [ "http://*/", "https://*/", "tabs" ], 

    "content_scripts": [ 
    { 
     "matches": ["http://*/*", "https://*/*"], 
     "js": ["content_script.js" ], 
     "run_at": "document_idle" 
    } 
    ] 
} 

ответ

1

Y наше всплывающее окно должно отправить сообщение на ваш скрипт контента, который затем собирает скрытую информацию о поле и отправляет ответ обратно во всплывающее окно.

Вот пример:

popup.html

<html> 
<head> 
<script> 
function readIds() { 
    console.log('Send request to content script'); 
    document.getElementById("response").innerText = "Requesting..."; 
    chrome.tabs.getSelected(null,function(tab){ 
     chrome.tabs.sendRequest(tab.id, {cmd: "readIds"}, function(response){ 
      console.log('Response from page is:' + response); 
      document.getElementById("response").innerText = JSON.stringify(response); 
     }); 
    }); 
} 
</script> 
</head> 
<body style="width:400px;"> 
<a href="javascript:readIds();return false;">Click to read ids</a> 
<pre id="response"></pre> 
</body> 
</html> 

content_script.js

// add a listener to get messages from background, popup 
chrome.extension.onRequest.addListener(function (request, sender, sendResponse) { 
     switch (request.cmd) { 
      case "readIds": 
       console.log("readIds", request); 
       //TODO: Get real values to send from page 
       //e.g. document.getElementById("someid") etc 
       sendResponse({refCode:1, productCode: 2, productName: 3}); 
       break; 
     } 
}); 

mainfest.json

{ 
    // Required 
    "name": "Foo Extension", 
    "version": "0.0.1", 

    // Recommended 
    "description": "A plain text description", 
    "icons": { "48": "foo.png" }, 
    //"default_locale": "en", 

    // Pick one (or none) 
    "browser_action": { 
    "default_icon": "Foo.png", // optional 
    "default_title": "Foo Extension",  // optional; shown in tooltip 
    "popup": "popup.html" 
    }, 

    "permissions": [ "http://*/", "https://*/", "tabs" ], 

    "content_scripts": [ 
    { 
     "matches": ["http://*/*", "https://*/*"], 
     "js": ["content_script.js" ], 
     "run_at": "document_idle" 
    } 
    ] 
} 

См документации: http://code.google.com/chrome/extensions/messaging.html

+0

Благодарим за отзывы и примеры Ричард. Проверите это в ближайшие пару дней. –

+0

Не беспокойтесь. Пожалуйста, отметьте как ответ, если это ответит на ваш вопрос. Благодарю. –

+0

Привет Ричард Я получаю неперехваченный SyntaxError: недопустимый оператор возврата \t popup.html: 1 не знает, как обращаться с .. –

Смежные вопросы