[need help] chrome extension không làm việc với iframe

vitomxau

Banned
Joined
Jun 24, 2013
Messages
434
Reactions
120
MR
0.000
Insuree Balance
0
Phone Number
Call me! Call me!
Telegram
Chat with me via Yahoo Messenger
Facebook
Follow me on Facebook
Skype
Chat with me via Skype
ICQ
Chat with me via ICQ
Tình hình là e muốn có một addon đếm số lần truy cập vào một url nào đó được list trước, lang thang trong store cả buổi cũng tìm đc một cái về edit và chạy ngon lành nhưng vấn đề là khi cái url em cần đếm được iframe vào một trang khác thì addon nó ko đếm đc nữa, e đã thử set all_frames => true như trong file manifest.json nhưng vẫn ko đc, thánh nào rành cái này xem giúp e với e cảm ơn trước và có hậu tạ :D

manifest.json:
Code:
{
   "background": {
      "persistent": true,
      "scripts": [ "jquery.js", "counter.js", "background.js" ]
   },
   "browser_action": {
      "default_icon": "icon.png",
      "default_popup": "counter.html"
   },
   "description": "Counter",
   "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgrQn46/0KFBVFH0l9mKUXPOns5h0YMQ0isRXkB/GzK1h8JfvILDuxkIC7jbyePzMgbY0b8TO7L7FR3m4qcnPJZemz2yrGnHOkppaOWaAuyJm2cQeOul89qNPsC1GROoKfBmajag5OaOr02y4de3MEKSTubtjlO5crbg8xKnp7nHbqkeIq9MOMsEo0/uOQMqvixMnIAfPamUPOQfqmG2lUeo9UgTUoFBaxpf5VhgcuDcLHnkkSrzRrL0DoYeYFqyXwGmiCdvmwkWF+Eax/+s2xGemqMSUj0mrMxzz8KfoWuAWn9pcXYMEINSelIwS/x+wf+NWWmsCY0pV9yF54+vprQIDAQAB",
   "manifest_version": 2,
   "name": "counter",
   "content_scripts": [
    {
      "matches": ["https://mmo4me.com/*"],
      "css": ["app.css"],
      "js": ["jquery.js", "counter.js","background.js"],
      "all_frames": true
    }
  ],
   "permissions": [ "tabs", "history", "background", "webNavigation", "http://*/*", "activeTab" ],
   "update_url": "https://clients2.google.com/service/update2/crx",
   "version": "0.4"
}

background.js:

Code:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 

  // Get chrome history
  chrome.history.search({text: '', maxResults: 1}, function(data) {
    data.forEach(function(page) {
      var dateObj = new Date(page.lastVisitTime);
      var dateString = dateStringForDate(dateObj);

      // Display last page visit
      var pageUrl = page.url;

      // Set value to 0 on first load
      if (localStorage.getItem("dayCount-" + dateString) === null) {
        localStorage.setItem("dayCount-" + dateString, JSON.stringify([]));
      }

      // Check if last page contains facebook.com
      if (pageUrl.indexOf("mmo4me.com") > -1) {
        appendUrlForDay(pageUrl, dateString);       
      }
      chrome.browserAction.setBadgeText({ text: countForToday().toString() });
    });
    });

});

counter.js:

Code:
$(document).ready(function(){

  // Display day count
  $('.day-count').text(countForToday());

  // Display yesterday count
  var yesterdayToday = new Date();
  var yesterday = new Date(yesterdayToday.setDate(yesterdayToday.getDate() - 1));
  var yesterdayString = dateStringForDate(yesterday);
  var yesterdayCount = countForDay(yesterdayString);
  $('.yesterday-count').text(yesterdayCount);

  // Display last 7 days
  var weeklyTotal = countForDaysFromToday(7);
  $('.week-count').text(weeklyTotal); 

  // Display last 28 days
  var monthlyTotal = countForDaysFromToday(28);
  $('.month-count').text(monthlyTotal);

  // Total
  var total = 0;
  for (var i = 0; i < localStorage.length; i++){
    var key = localStorage.key(i);
    if (key.indexOf("dayCount") > -1) {
      var entry = JSON.parse(localStorage.getItem(key));
      total += entry.length;
    }
  }
  $('.all-count').text(total);

  chrome.browserAction.setBadgeBackgroundColor({ color: '#3BAFDA' }); 

});

function countForToday() {
  // Display day count
  var today = new Date(); 
  var todayString = dateStringForDate(today);
  var todayCount = countForDay(todayString);
  return todayCount;
}

function appendUrlForDay(pageUrl, dateString) {
  // get
  var currentUrls = urlsForDay(dateString);
  // append
  var found = false;
  for(var i = 0; i < currentUrls.length; i++) {
    if (currentUrls[i] == pageUrl) {
      found = true;
      break;
    }
  }
  if (!found) {
    currentUrls.push(pageUrl);
  }
  // set
  localStorage.setItem("dayCount-" + dateString, JSON.stringify(currentUrls));
}

function dateStringForDate(dateObj) {
  var month = dateObj.getUTCMonth() + 1;
  var day = dateObj.getUTCDate();
  var year = dateObj.getUTCFullYear();
  var dateString = year + "/" + month + "/" + day;
  return dateString;
}

function countForDaysFromToday(number_of_days) {
  console.log(number_of_days);
  var total = 0;
  for (var i = 0; i < number_of_days; i++) {
    var today = new Date(); 
    var dayToLookup = new Date(today.setDate(today.getDate() - i));
    var dayString = dateStringForDate(dayToLookup);
    var dayCount = countForDay(dayString);
    total += dayCount;
  }
  return total;
}

function urlsForDay(dateString) {
  var item = localStorage.getItem("dayCount-" + dateString); 
  return JSON.parse(item);
}

function countForDay(dateString) {
  var currentUrls = urlsForDay(dateString);
  if (currentUrls != null) {
    return currentUrls.length;
  } else {
    return 0;
  } 
}
 

Announcements

Today's birthdays

Forum statistics

Threads
418,889
Messages
7,077,798
Members
170,948
Latest member
tamnhindautu

Most viewed of week

Most discussed of week

Most viewed of week

Most discussed of week

Back
Top Bottom