我有一个chrome扩展程序及其内容脚本,它在本地主机上运行
"content_scripts": [{
"js": ["lib/jquery.js", "searching_helper.js"],
"matches": [ "http://localhost:8089/*"]
}]
在searching_helper.js中,我从其他内容脚本获取了linkedin成员的公开个人资料网址。
chrome.runtime.sendMessage({u:true},function(response) {
console.log(response.ans);
linkedinProfileUrl = response.ans.profileUrl;
console.log('linkedinProfileUrl' + linkedinProfileUrl);
});
在linkedinProfileUrl变量中,我正在查看公开个人资料网址正在查看的个人资料。
现在我想要的是我有一个服务器端代码,我必须给它使用linkedin api的url。
服务器端代码 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文件中传递参数,则会抛出错误。
答案 0 :(得分: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);
}
);
}