2014-10-18 55 views
0

我正在嘗試將jQuery/javascript與包含Google表單的iframe一起使用。 這裏是代碼片段:在Google表單中使用jQuery/javascript

<body> 
<iframe id="myFormFrame" src="https://docs.google.com/forms/d/smfjkafj809890dfafhfdfd/viewform?embedded=true" width="760" height="1750" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe> 
<button id="mybtn">Click</button> 
<script type="text/javascript"> 
    $('#mybtn').click(function(){ 
     var m=document.getElementById("ss-form"); 
     alert(m.innerHTML); 
    }); 
</script> 

上點擊按鈕應給予形式的innerHTML(其上的iFrame內裝載具有「β-形式」一個id)。但它不工作。那麼可能是什麼原因(跨域iframe?)? 什麼是使jQuery與谷歌形式工作的方式?

如果有幫助,我試圖把自定義ajax驗證(例如,電子郵件ID字段必須包含從不同數據庫獲得的特定列表中的電子郵件)。

編輯

那麼它看起來像一個跨域問題。我有這個懷疑。但看了this文章後,它看起來像是可能的。

+0

你不能,因爲它是一個跨域iframe – 2014-10-18 09:15:25

+0

@ArunPJohny請參閱編輯。 – rahulserver 2014-10-18 09:20:27

回答

1

document.getElementById搜索當前文檔,而不是其他文檔加載到框架。

如果框架文檔位於您自己的網站上,則可以先訪問框架然後訪問該文檔(通過contentDocument)。然後請撥打getElementById

由於它是交叉原點,所以會失敗。如果你考慮一下,如果馬洛裏的邪惡網站是堅持你的銀行的網上銀行網站成爲一個框架,而你正在登錄會發生什麼造成這種情況的原因是顯而易見的。

如果你有谷歌的合作(你不」 t),那麼你可以使用postmessage在幀之間傳遞消息。

那麼它看起來像一個跨域問題。我有這個懷疑。但看完這篇文章後,它看起來像是可能的。

他們沒有使用Google託管的表單。他們使用Google工具來設計表單,然後將HTML複製到自己的網站。如果谷歌實施CSRF保護,那將會中斷。

+0

感謝您的澄清。我已經投票了,我知道跨域問題。請看看編輯。 – rahulserver 2014-10-18 09:21:37

相關問題