2013-10-17 16 views
5

Başlığı bir sekmeden alan ve onu bir değişkene atayan bir komut dosyası var. Bununla birlikte, input alanında kullanılmak üzere metadesc ve title özelliklerini almam gerekir.Javascript - Bir sayfa başlığı ve meta açıklaması alma ve bunları bir chrome uzantısının değişkenleri olarak kullanma

Ben bu ile elde edebilirsiniz emin değilim:

chrome.tabs.getSelected(null, function(tab) { 
    var currentTitle = tab.title; 
}); 

Sonra ben sekme verilerinden elde edebilirsiniz inanmıyorum Meta açıklama almak gerekir.

Bu

ben den açıklama alıyorum HTML:

<meta name="description" content="contentstuffya" /> 

Bu benim uzantısı dışında bunu elde etmek için JavaScript kullanıyorum edilir:

document.getElementsByName('description')[0].getAttribute('content'); 

en iyi ben bu yapacağını nasıl sahip olduğum veriler göz önüne alındığında?

+0

Bu açıklamadaki "html" satırı neye benziyor? – yakiang

cevap

7

Bir <meta> etiketinin değeri yalnızca bir içerik komut dosyası üzerinden okunabilir. İşte bir örnek: İlk satırında

var code = 'var meta = document.querySelector("meta[name=\'description\']");' + 
      'if (meta) meta = meta.getAttribute("content");' + 
      '({' + 
      ' title: document.title,' + 
      ' description: meta || ""' + 
      '});'; 
chrome.tabs.executeScript({ 
    code: code 
}, function(results) { 
    if (!results) { 
     // An error occurred at executing the script. You've probably not got 
     // the permission to execute a content script for the current tab 
     return; 
    } 
    var result = results[0]; 
    // Now, do something with result.title and result.description 
}); 

, ben <meta name="description"> eleman bulun. İkinci satırda, eleman varsa content özniteliğinin değerini okurum.
chrome.tabs.executeScript geri çağrısı, son ifadenin dönüş değerini alır, bu nedenle kodun sonuna bir nesnesel (parantez içinde sarılı) koydum.

+0

Evet, ben bir çaylakım. Belki bu buradan anlaşılıyor, ancak uzantıdaki başlık ve metaları iki girdi alanına döndürmeye çalışıyorum. Böylece başlık bir girdinin değeri ve meta diğerinin değeri olur. Bunu bu noktadan nasıl yaparım? ExecuteScript, içindeki tüm j'leri uzantımın arkasına değil de geçerli sekmede yürütür. – jonode

+0

@ user2879869 Yani, // //~~pobj * devam edip, result.title ve result.description' ile bir şeyler yapmaya nasıl devam edeceğinizi bilmiyorsunuz? Hangi kod zaten var? Eğer 'gibi bir şeyiniz varsa, o zaman document.getElementById ('title'). Value = result.title;' kullanabilirsiniz. DÜZENLEME: 'executeScript' içindeki' '' '' '' '' '' '' '' sekmesi bağlamında yürütülür, ancak onun geri çağrısı orijinal bağlamda, muhtemelen uzantınızın açılır penceresinden çalışır. –

+0

Bu yüzden '// Şimdi, document.getElementById ('title') ile result.title ve result.description' ile bir şeyler yapın. Value = result.title;'? – jonode

İlgili konular