我創建了一個JS的功能時,它包括其執行罰款的標準HTML鏈接標記的「的onclick」動作如下:調用表格JS功能提交
<a href="#" onclick="return fb_CheckPermission('publish_stream');">test</a>
然而,當我真的想用這函數是一種形式的「的onsubmit」行動,但是當我把它作爲如下功能似乎不再被執行:
<form action="page.pl" id="disable-submit" name="status-form" method="POST" onsubmit="return fb_CheckPermission('publish_stream');">
什麼「fb_CheckPermission()」 JS功能基本上都爲使用Facebook Connect來檢查以確保用戶已授予我們特定許可n,如果不是則告訴Facebook Connect提示用戶授予權限。下面是JS函數的代碼:
1. function fb_checkPermission(permission) {
2. FB.ensureInit(function() {
3. FB.Facebook.apiClient.users_hasAppPermission(permission, function (hasPermissions) {
4. if(!hasPermissions){
5. FB.Connect.showPermissionDialog(permission,function (status){
6. if(!status) {
7. if(permission == 'offline_access') {
8. // save session
9. }
10. }
11. });
12. }
13. });
14. });
15.}
這段代碼的含義如下:
Line 2: Make sure Facebook Connect JS library is loaded
Line 3: Checks to see if the current Facebook Connect user has granted a specific permission
Line 5: If the permission hasn't been granted then prompt the user with the permission dialog
Line 7: In the case of the 'offline_access' permission save the session key once granted
我想要實現的用戶體驗是,當用戶提交我的形式LL檢查,看看他們是否已授予特定權限,如果提交表單之前不提示他們的權限。如果用戶已經授予了表單應該提交的權限。對於提示的形式後,他們應提交要麼選擇授予的權限,或者如果拒絕,我相信fb_checkPermission()JS函數正確處理現在請求誰的用戶。我不確定的是,如果在提交表單時出現某種JavaScript問題。
正如我所提到的,這個JS函數完美地作爲一個onclick動作,但作爲一個onsubmit動作失敗,所以我敢肯定,這與JavaScript如何處理提交動作有關。
我堅持,所以我真的很感謝你搞清楚如何改變JS功能產生我所期望的用戶體驗幫助。在此先感謝您的幫助!
@Marko - 你說的話很有道理,但似乎沒有用。我更新了
有一點需要注意:代碼中可能存在錯誤。這也會終止腳本並允許提交進行。 如果您使用的是Firefox/Firebug,請在「return false」之前加上「console.log('...')」來查看它是否實際運行以返回語句。 – 2010-03-08 00:26:57
好心思都一樣。我基本上決定在每個新元素後面再次使用警報語句重新構建函數,以確定事件發生的順序以及發生問題的位置。我認爲我已經解決了這個問題,但是它似乎在我們的幾個表格上失敗了。你的建議無疑給了我正確的方向,所以非常感謝你的幫助! – 2010-03-08 00:36:17