-2

我僅使用Skype Web來實現其點擊呼叫目的。它突出顯示了網頁/平臺上的電話號碼,您可以點擊並通過Skype立即撥打電話。 不幸的是,他們不再支持這個「數字高亮」功能,並且高效地完成我的工作真是一件麻煩事。許多卡車調度員都有這個問題。Chrome - Web Skype擴展 - 不會突出顯示網頁上的電話號碼

我用this website找到這個擴展的舊版本。
版本8.4+沒有「數字高亮」複選框選項,但版本8.3和更低版本。我想出了一個奇怪的解決辦法。 (安裝了最新版本的擴展程序,刪除了它,然後安裝了8.4版本,刪除了它,最後安裝了8.3版本.8.3版本顯示了'數字高亮選項',如果您在其中放入了一個複選標記,它會顯示電話號碼。直接從最新到版本8.3有鉻降級錯誤/問題。)

我目前正在編輯版本8.3,但我沒有太多的運氣。被請求的主要文件是這些:

的manifest.json

{ 
"update_url": "https://clients2.google.com/service/update2/crx", 

    "name" : "Skype", 
    "version" : "8.3.0.9150", 
    "description" : "Quickly access Skype for Web and Share on Skype through your browser", 
    "background" : { 
    "page": "background.html" 
    }, 
    "options_page": "c2c_options_menu.html", 
    "browser_action": { 
    "default_icon": { 
     "19": "skypelogo_19.png", 
     "38": "skypelogo_38.png" 
    }, 
    "default_title": "Skype", 
    "default_popup": "browserActionPopup.html" 
    }, 
    "permissions" : [ 
    "tabs", 
    "https://pnrws.skype.com/", 
    "https://c2c-directory-dev.trafficmanager.net/", 
    "https://c2c-directory-pre.trafficmanager.net/", 
    "https://c2c-directory-qa.trafficmanager.net/", 
    "https://localhost:26143/" 
    ], 
    "icons" : { 
    "16" : "skypelogo_16.png", 
    "19" : "skypelogo_19.png", 
    "38" : "skypelogo_38.png", 
    "48" : "skypelogo_48.png", 
    "128" : "skypelogo_128.png" 
    }, 
    "content_scripts" : [ 
    { 
     "matches" : [ "http://*/*", "https://*/*", "file://*/*" ], 
     "js" : [ "jquery-2.1.0.min.js", "mutation-summary.js", "localization.js", "browserSpecificScript.js", "number_highlighting_builder.js", "pnr.js", "fpnr.js", "contentscript.js"], 
     "css" : [ "number_highlighting.css", "number_highlighting_chrome.css" ], 
     "run_at" : "document_end", 
     "all_frames" : true 
    } 
    ], 
    "web_accessible_resources": [ 
    "call_skype_logo.png", "call_icon.png", "menu_handler.js", "telemetry.js", "specificTelemetry.js" 
    ], 
    "manifest_version": 2 
} 

background.js

/* globals SkypeC2CTelemetry */ 
/** 
This is the script run when the browser starts up and is not associated 
with any tab. Here we create a add-on icon in the add-on bar to display 
the options. 
*/ 
'use strict'; 
/** 
* Returns the product version number 
* 
* @return Product version number 
*/ 
var getProductVersion = function() { 
    return '8.3.0.9150'; 
}; 

/** 
* Stores configuration information 
*/ 
var Configuration = { 
    configReady: '0', 
    fingerPrint : '0', 
    metricsUrl: 'https://pipe.skype.com/Client/2.0/', 
    pushToMobileUrl: 'https://c2c-p2m-secure.skype.com/p2m/v1/push', 
    lookupHost: 'pnrws.skype.com', 
    uiId : 0 
}; 

/** 
* Queries configuration information from PNR service 
*/ 
var queryConfig = function() { 
    if (Configuration.configReady === '1') { 
     // We already have configuration information 
     return; 
    } 

    var ajaxReq = new XMLHttpRequest(); 
    ajaxReq.onreadystatechange = function() { 
     if (ajaxReq.readyState === 4 && ajaxReq.status === 200) { 
      var jsonData = JSON.parse(ajaxReq.responseText); 

      if (jsonData.fp) { 
       Configuration.fingerPrint = jsonData.fp; 
      } 
      if (jsonData.metrics_url) { 
       Configuration.metricsUrl = jsonData.metrics_url; 
      } 
      if (jsonData.lookup_host) { 
       Configuration.lookupHost = jsonData.lookup_host; 
      } 
      if (jsonData.pushtomobile_url) { 
       Configuration.pushToMobileUrl = jsonData.pushtomobile_url; 
      } 
      if (jsonData.ui_id) { 
       Configuration.uiId = parseInt(jsonData.ui_id); 
      } 
      Configuration.configReady = '1'; 

      // Ensure UI id is something we understand 
      if (Configuration.uiId !== 0 && Configuration.uiId !== 1) { 
       Configuration.uiId = 0; 
      } 
     } 
    }; 

    ajaxReq.open('GET', 'https://localhost:26143/skypectoc/v1/pnr/config', false); 

    // Send the request 
    ajaxReq.send(); 
}; 

/** 
* Sends metrics data 
*/ 
var postMetrics = function(event, userKVPs) { 

    if (event === 'extension_state') { 
     SkypeC2CTelemetry.post(Configuration.metricsUrl, 
      event, 
      false, { 
       Fingerprint: Configuration.fingerPrint, 
       UiId: Configuration.uiId.toString(), 
       ReferrerUrl: userKVPs.url, 
       Enabled: userKVPs.chosenFunction 
      } 
     ); 
    } else if (event === 'help_page_click') { 
     SkypeC2CTelemetry.post(Configuration.metricsUrl, 
      event, 
      false, { 
       Fingerprint: Configuration.fingerPrint, 
       UiId: Configuration.uiId.toString(), 
       ReferrerUrl: userKVPs.url 
      } 
     ); 
    } 
}; 

var openFaqTab = function() { 
    chrome.tabs.create({ 
     url: 'https://go.skype.com/skype.extension.faq' 
    }); 
}; 

var firstLaunchExperience = function() { 
    var previousVersion = localStorage.getItem('skype_version'); 
    var newVersion = getProductVersion(); 
    if (!previousVersion){ 
     openFaqTab(); 
    } else { 
     var newMajorVersion = parseInt(newVersion.split('.')[0], 10); 
     var previousMajorVersion = parseInt(previousVersion.split('.')[0], 10); 
     if (newMajorVersion && previousMajorVersion && (newMajorVersion > previousMajorVersion)) { 
      openFaqTab(); 
     } 
     if (previousVersion != newVersion) { 
      switchOffHighlightingNotification(); 
     } 
    } 
    localStorage.setItem('skype_version', getProductVersion()); 
}; 

var switchOffHighlightingNotification = function(){ 
    var previousState = JSON.parse(window.localStorage.getItem('switchState')); 
    if (previousState === null) { 
     window.localStorage.setItem('switchState', false); 
    } 
    else if (previousState === true) { 
     if (JSON.parse(window.localStorage.getItem('displayNotification')) === null) { 
      window.localStorage.setItem('switchState', false); 
      if (window.navigator.platform.toUpperCase().indexOf('WIN') >= 0) { 
       window.localStorage.setItem('displayNotification', true); 
       chrome.tabs.create({ 
        url: 'c2c_options_menu.html' 
       }); 
      } 
     } 
    } 
}; 

/** 
* Main function where all the action starts 
*/ 
var main = function() { 

    firstLaunchExperience(); 

    // Register listener to receive messages 
    chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 

     if (request.op === 'GET_SETTINGS_REQUEST') { 
      var message = {}; 
      message.switchState = JSON.parse(window.localStorage.getItem('switchState')); 
      if (message.switchState === null) { 
       message.switchState = false; 
      } 

      if (Configuration.configReady === '0') { 
       message.switchState = false; 
      } 

      message.fingerPrint = Configuration.fingerPrint; 
      message.metricsUrl = Configuration.metricsUrl; 
      message.lookupHost = Configuration.lookupHost; 
      message.pushToMobileUrl = Configuration.pushToMobileUrl; 
      message.uiId = Configuration.uiId; 

      sendResponse(message); 
     } 
     else if (request.op === 'SET_SETTINGS_REQUEST') { 
      // Save the settings 
      window.localStorage.setItem('switchState', request.switchState); 

      // Inform all tabs about change in settings 
      request.fingerPrint = Configuration.fingerPrint; 
      request.metricsUrl = Configuration.metricsUrl; 
      request.uiId = Configuration.uiId; 

      chrome.tabs.query({}, function(tabs) { 
       for (var i = 0; i < tabs.length; ++i) { 
        chrome.tabs.sendMessage(tabs[i].id, request); 
       } 
      }); 
     } 
     else if (request.op === 'MENU_OPTION_CLICK') { 
       var data = { 
        chosenFunction: request.option, 
        url: request.url.split('?')[0].split('#')[0] 
       }; 
       postMetrics('extension_state', data); 
     } 
    }); 

    // Query configuration from PNR service 
    queryConfig(); 
}; 

main(); 

c2c_options_handler_script.js

'use strict'; 

// This method adds appropriate event handlers for each of the UI elements in the options menu 
// Options menu is written in html in c2c_options_menu.html 
function addEventHandlers() { 
    document.addEventListener('DOMContentLoaded', function() { 
     localizer.loadLocalizedResources(); 
     var switchHighlightElement = document.getElementById('switchHighlight'); 
     var notification = document.getElementById('notification'); 
     if (JSON.parse(window.localStorage.getItem('switchState')) === false) { 
      if (JSON.parse(window.localStorage.getItem('displayNotification')) === true) { 
       document.getElementById('notification').classList.remove('noDisplay'); 
       window.localStorage.setItem('displayNotification', false); 
      } 
     } 
     switchHighlightElement.addEventListener('click', function() { switchHighlightHandler(switchHighlightElement.checked); }); 
    }); 
} 

// Handle the switch on/off highlight event from UI 
// Send the message to background script to store the settings 
function switchHighlightHandler(onOffState) { 
    var message = {}; 
    message.op = 'SET_SETTINGS_REQUEST'; 
    message.switchState = onOffState; 
    chrome.extension.sendMessage(message); 
} 

// Sets the highlighting on/off check box state 
function setSwitchState(message) { 
    if (message.switchState === false) { 
     document.getElementById("switchHighlight").checked = false; 
    } 
    else { 
     document.getElementById("switchHighlight").checked = true; 
    } 
} 

function main() { 

    // Add event handlers for UI elements 
    addEventHandlers(); 

    // Update the settings displayed in the panel to match the stored settings 
    chrome.extension.sendMessage({op: 'GET_SETTINGS_REQUEST'}, function(message) { 
     setSwitchState(message); 
    }); 
} 

main(); 

c2c_options_menu.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>Skype</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" type="text/css" href="c2c_options_menu.css"/> 
    <script src="c2c_options_menu_localization.js"></script> 
    <script src="c2c_options_handler_script.js"></script> 
</head> 
<body> 
    <header> 
     <div id="notification" class="info noDisplay"> 
      <img src="info.png" alt=""> 
      <span class="message">Number highlighting has been turned off. To enable number highlighting, please check the &#39;<strong>Turn number highlighting on</strong>&#39; option below.</span> 
     </div> 
    </header> 
    <div class="body"> 
     <div class="title"> 
      <div class="logo"> 
       <img src="skypelogo_128.png" alt="Skype"> 
      </div> 
      <div class="info"> 
       <div class="heading"> 
        <h1>Skype</h1> 
       </div> 
       <div class="company-branding"> 
        <strong>By Microsoft Corporation</strong> 
       </div> 
      </div> 
     </div> 
     <div class="about"> 
      <div class="description"> 
       <p> 
        Install the Skype extension for fast access to 'Skype for Web' and 'Share on Skype' through your browser. 
        <BR/> 
        We'll be adding more features and supporting other browsers in future releases. 
        <BR/><BR/> 
        <B>Share on Skype</B> 
        <BR/> 
        Read a good article? Now you can share the web page directly with your Skype contacts using the Skype extension. Click on 'Share on Skype' to get started. 
        <BR/><BR/> 
        <B>Launch Skype</B> 
        <BR/> 
        Access the full Skype functionality offered by the Skype web client. Click on 'Launch Skype' to get started. 
        <BR/><BR/> 
        Please note that audio and video calling on Skype web client is currently not supported on Chrome OS and Linux. 
       </p> 
      </div> 
      <a href="https://go.skype.com/skype.extension.faq" target="_blank">Learn more</a> <span>about the Skype Extension</p> 

      <hr> 
      <div class="click-to-call"> 
       <p>Enhance this extension by installing <a href="https://go.skype.com/ctc.features" target="_blank">Skype Click to Call</a> on Windows</p> 
       <label> 
        <input id="switchHighlight" type="checkbox" name="checkbox" value="On"/> 
        <span id="switchHighlightLabel">Turn number highlighting on</span> 
       </label> 
       <br/><br/> 
       <a href="https://support.skype.com/category/SKYPE_CALLS_FROM_BROWSERS/" target="_blank">Learn more</a> <span>about Skype Click to Call </p> 
      </div> 
     </div> 
    </div> 
    <footer></footer> 
</body> 
</html> 

好的,我完全忘記了有一個由微軟提出的叫做Skype Click to Call的應用程序,它與Skype的網絡擴展密切合作。他們不再支持它,所以我不能正式下載他們的網站,但發現該軟件關閉softpedia。

數字ARE現在被強調,但沒有功能。它不會叫任何東西,它只是亮點。似乎我不能添加一個鏈接到Skype點擊通話軟件。

該軟件也不斷隨機卸載。

+0

另一次,請[編輯]您的問題而不是[刪除它](http://webcache.googleusercontent.com/search q =緩存:計算器。com/questions/40246588/skype-web-extension-editing-help-need-this-extension-to-highlight-numbers-for)並再次詢問。如果你做了足夠多的次數,你最終可能會被禁止提問(特別是如果問題的投票數是負值)。 – Makyen

+0

請將[問題]置於主題上:包括一個重複問題的**完整** [mcve]。通常包括一個* manifest.json *,一些背景*和*內容腳本。尋求調試幫助的問題(「**爲什麼不是這個代碼工作?」)必須包括:►期望的行爲,►特定問題或錯誤*和*►在問題中重現問題所需的最短代碼**本身**。沒有明確問題陳述的問題對其他讀者無益。請參閱:「**如何創建[mcve] **」,[我可以在此處詢問哪些主題?](http://stackoverflow.com/help/on-topic)和[問]。 – Makyen

+0

A * manifest.json *是Chrome擴展的一個非常重要的部分。它定義了一切事物如何結合在一起,以及擴展可以做什麼等等。你在最後一個問題上被問到了這一點。請在這裏包含你的* manifest.json *。 – Makyen

回答

0

如果您添加下面的background.js末的代碼將模擬用戶選擇,使從擴展被裝載在幾秒鐘後選項頁面突出號。

function turnOnNumberHighlighting(){ 
    let request = { 
     op:'SET_SETTINGS_REQUEST', 
     switchState: true 
    }; 
    // Save the settings 
    window.localStorage.setItem('switchState', request.switchState); 
    // Inform all tabs about change in settings 
    request.fingerPrint = Configuration.fingerPrint; 
    request.metricsUrl = Configuration.metricsUrl; 
    request.uiId = Configuration.uiId; 

    chrome.tabs.query({}, function(tabs) { 
     for (var i = 0; i < tabs.length; ++i) { 
      chrome.tabs.sendMessage(tabs[i].id, request); 
     } 
    }); 
} 
//Simulate the user making the change on the options page 5 seconds after done loading. 
setTimeout(turnOnNumberHighlighting,5000); 
+0

我添加了一個示例,說明如何在OP中中斷代碼。這是正確的還是不是?順便說一下......非常感謝你的幫助。我作爲調度員與卡車平臺一起工作,並通過點擊呼叫使我的工作更加高效。 – sinoraj

+0

不,上面的代碼應該在main();後面的* background.js *末尾。撤銷你所做的其他修改,使其恢復到發佈代碼時的樣子,然後將此答案中的代碼添加到文件末尾,在main()之後;' – Makyen

+0

好吧,我添加了代碼到我原來的文章,因爲編輯被拒絕時,我試圖編輯你的答案。我確保撤消我之前的所有更改。 @Makyen – sinoraj

0

我想通了並解決了這個問題。最新版本的Skype(7.28/29)停止支持並完全刪除了Skype安裝時默認安裝的Skype點擊通話。

我將Skype降級到版本7.16,禁用Skype更新,以及禁用/停止Skype點擊通話更新程序和Skype更新程序的服務。

Skype Web擴展8.3和Skype 7.16版本的工作完美無瑕。 (突出顯示網頁上的電話號碼,並讓用戶通過Skype進行點擊通話。)

相關問題