2017-09-15 24 views
0

我正在爲客戶端做一個chrome擴展。該擴展的功能是,它添加了另一個私人像按鈕的職位。當有人點擊按鈕時,會通知該海報。在iframe中使用chrome的post郵件API

我的工作方式就是這樣的:我使用了Facebook登錄按鈕,然後獲取該用戶的Facebook數據。我從Facebook SDK獲得用戶應用範圍ID(數字鍵),用戶應用範圍鏈接,用戶名和性別等。當用戶單擊Facebook按鈕時,將從Facebook獲取所需數據。從這些數據中,只有名字出現在表格中,並且用戶需要通過提供他們的電子郵件和密碼來填寫表格。你可以檢查它here。當用戶點擊提交按鈕時,表單數據和從Facebook檢索的數據將保存在我的服務器上的數據庫表中。

問題是,Facebook的SDK代碼在chrome擴展中不起作用,因爲擴展名不允許使用外部腳本。所以出於這個原因,我已經將SDK腳本保存在服務器上,並創建了一個html頁面並保存在那裏,您可以在提供的鏈接中看到它。爲了克服這個問題,我在擴展中使用了iframe,所以它不會檢測到外部加載的腳本。

當數據保存在表格中,並且正如我所提到的,我從Facebook獲得應用程序範圍的鏈接時,我立即在該頁面上顯示該鏈接。這意味着在我的擴展中顯示在iframe中。我想從iframe中獲取鏈接,只要它在iframe中的div元素中加載。因爲我想在本地擴展中使用該鏈接。

結論:抓取iframe中的URL或鏈接,並且iframe正在從服務器加載外部.html文件。

您可以在此Link

下面檢查過程是我的iframe代碼:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <title></title> 
 
\t <script type="text/javascript" src=jquery.js></script> 
 
</head> 
 

 
<body> 
 

 
<iframe src="http://bitbaysolutions.com" id="myFrame" style="width: 100%;height: 100%;position: fixed;top: 0;left: 0;border:none;overflow-y:scroll; "> 
 
\t 
 
</iframe> 
 

 
</body> 
 
<script type="text/javascript" src=script2.js></script> 
 
</html>

有了這個IFRAME我想在SCRIPT2工作.js文件。我想要在iframe中顯示該鏈接,並在本地scripts2.js文件中使用該鏈接。

+0

不清楚你在問什麼。該URL本身並未出現在框中,但您的應用程序必須首先將它寫入該框。所以你必須有信息的地方。 – CBroe

+0

它確實出現,首先當你點擊Facebook按鈕,然後點擊提交表單,通過提供隨機電子郵件和通過,然後提交後會出現一個URL – Nadeem

+0

這不是重點。您的腳本首先從API請求此值,然後通過AJAX將其發送到您的服務器,然後再從那裏返回並放入該框。因此,如果您需要腳本中的值 - 那麼在從API獲取請求時獲取它。 – CBroe

回答

0

我得到了它的解決方案, 我只需要做的是;使用window.postMessage(url-I-wanted-to-pass,oringin),然後在我的本地文件上觸發消息事件以獲取該消息。