0

我有一个 chrome 扩展程序及其在本地主机上运行的内容脚本

"content_scripts": [{
    "js": ["lib/jquery.js", "searching_helper.js"],
    "matches": [ "http://localhost:8089/*"]
}]

在 search_helper.js 中,我从另一个内容脚本中获取了linkedin 成员的公共个人资料 url。

   chrome.runtime.sendMessage({u:true},function(response) {
console.log(response.ans);
linkedinProfileUrl = response.ans.profileUrl;
console.log('linkedinProfileUrl' + linkedinProfileUrl);

});

在linkedinProfileUrl 变量中,我正在获取公共个人资料网址正在查看的linkedin 个人资料。

现在我想要的是我有一个服务器端代码,我必须在其中提供使用linkedin api的网址。

index.html 文件的服务器端代码

  <script type="text/javascript" src="https://platform.linkedin.com/in.js">
//here goes the api key, and the callback function
api_key: ******
onLoad: onLinkedInLoad
authorize: true
 </script>

在 onload 上运行的函数在linkedin.js 文件中定义

     function onLinkedInLoad() {
    onLinkedInLogin();

}

    //execute on login event
   function onLinkedInLogin() {
//pass user info to angular
angular.element(document.getElementById("appBody")).scope().$apply(
    function($scope) {
        $scope.getLinkedInData();
    }
);

}

这个 getLinkedInData() 方法是在控制器中定义的。

    $scope.getLinkedInData = function() {
    if(!$scope.hasOwnProperty("userprofile")){
        IN.API.Profile("https://in.linkedin.com/in/latika").fields(
                [ "id", "firstName", "lastName", "pictureUrl",
                        "publicProfileUrl","positions","location","email-address"]).

在这个 IN.API.Profile(" https://in.linkedin.com/in/latika ") 中,我想传递从内容脚本获得的 linkedinProfileUrl 。问题是,如果我在 index.html 文件中传递参数,它会引发错误。

4

1 回答 1

0

我得到了答案。我使用 localStorage 来获取网址。

在 search_helper.js 中使用

localStorage.setItem('url', linkedinProfileUrl); 

然后在linkedin.js中使用

  function onLinkedInLogin() {
var url = localStorage.getItem('url');
//pass user info to angular
angular.element(document.getElementById("appBody")).scope().$apply(
    function($scope) {

        $scope.getLinkedInData(url);
    }
);

}

于 2015-05-05T13:08:23.417 回答