mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 10:18:41 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
/**
 | 
						|
 * Collects Twitter card (https://developer.twitter.com/en/docs/twitter-for-websites/)
 | 
						|
 * related data from a page.
 | 
						|
 */
 | 
						|
export const TwitterPageData = {
 | 
						|
  /**
 | 
						|
   * Collects the twitter data from the page.
 | 
						|
   *
 | 
						|
   * @param {Document} document
 | 
						|
   *   The document to collect from
 | 
						|
   *
 | 
						|
   * @returns {PageData}
 | 
						|
   */
 | 
						|
  collect(document) {
 | 
						|
    let pageData = {};
 | 
						|
 | 
						|
    let twitterTags = document.querySelectorAll("meta[name^='twitter:'");
 | 
						|
 | 
						|
    for (let tag of twitterTags) {
 | 
						|
      // Strip "twitter:" from the property name.
 | 
						|
      let propertyName = tag.getAttribute("name").substring(8);
 | 
						|
 | 
						|
      switch (propertyName) {
 | 
						|
        case "site":
 | 
						|
          pageData.siteName = tag.getAttribute("content");
 | 
						|
          break;
 | 
						|
        case "description":
 | 
						|
          pageData.description = tag.getAttribute("content");
 | 
						|
          break;
 | 
						|
        case "image":
 | 
						|
          pageData.image = tag.getAttribute("content");
 | 
						|
          break;
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    return pageData;
 | 
						|
  },
 | 
						|
};
 |