2012-06-14 7 views
5

Estoy intentando extraer datos de una página que está viendo un usuario y enviar esos datos a la ventana emergente de extensión. Tengo problemas para extraer información de la página actual. Después de revisar los tutoriales del código de google, configuré mi script de manifiesto y contenido como se muestra a continuación. Cuando voy a una página de prueba, que tiene un lapso con id = "comments", mi variable del guión de contenido inyectado siempre termina como null. ¿Alguien sabe lo que podría estar perdiendo? ¡Gracias!Script de contenido de extensión de Chrome que no tiene acceso al DOM de la página en el que se inyectó

manifest.json 
================= 
{ 
    "name": "Sample Extension", 
    "version": "0.0.1", 
    "description": "Sample extension", 
    "icons": {"128": "icon.png"}, 
    "permissions": [ 
     "tabs", "<all_urls>" 
    ], 
    "browser_action": { 
     "default_icon": "browseraction.png", 
     "default_title": "Sample", 
     "popup": "popup.html" 
    }, 
    "content_scripts": [ 
     { 
      "matches": ["http://*/*", "<all_urls>" ], 
      "js": ["scripts/contentscript.js"] 
     } 
    ] 
} 

contentscript.js 
=================== 
var comments = document.getElementById("comments"); 
alert(comments.innerText); 

Respuesta

6

Es posible que los comentarios se carguen después de la ejecución de su script.

intenta establecer esto en el manifiesto:

 "run_at" : "document_end", 

O si usted sospecha una carga AJAX, llama a un código más tarde con un setTimeout.

Por supuesto, el mejor esquema dependería de la página precisa y su funcionamiento interno.

+1

+1 pero probablemente debería usar 'textContent'. –

+0

¡Gracias, muchachos! Utilicé ambas sugerencias, usando "run_at" y "textContent", y funcionaron perfectamente. – sojo2600

+0

'innerText' se recomienda en el manual del desarrollador de extensión de Chrome. - No hay necesidad de evitarlo aquí. –

Cuestiones relacionadas