2012-11-01 44 views
4

我有一個工作申請表被拉到另一個頁面使用iFrame。如果用戶點擊提交併且頁面上有錯誤,則會出現一個覆蓋框(很像lightbox),它會向用戶提供驗證錯誤消息。它有一個'好的'按鈕,然後關閉窗口。使用jquery點擊iFrame內的滾動

我想單擊按鈕將用戶帶回頁面的頂部,因爲iFrame的高度約爲1000px。同樣,這一切都發生在iFrame內。彈出的iFrame會將您帶到iFrame頂部的錨點。這裏沒有跨域瘋狂。

我更喜歡用jQuery來做這件事,因爲我已經有了一個與按鈕相關的點擊功能,但是如果我絕對必須使用舊式的Javascript DOM方法,我會解決的。

我試過scrollTo,動畫,追加錨到iFrame的src,沒有任何工作。我也沒有得到任何錯誤來指導我。任何幫助將不勝感激!

UPDATE

if(errors > 0) { 
    var header = "It appears there was a problem!"; 
    var message = "There are <b><u>"+errors+"</u></b> errors with your application.<br/><br/>"; 
     message += "<b>Please re-attach your resume once you have corrected the errors.</b>"; 

    jQuery("#infoMessage .infoText").html("<h2>"+header+"</h2><p>"+message+"</p>"); 
    jQuery("#infoMessage button").button(); 

    jQuery("button.okButton").click(function() { 
     jQuery("#infoMessage").fadeOut(); 
     jQuery(".light_overlay").fadeOut(); 
     return false; 

     //alert('testing'); 
     // Do not use .scrollTop() as it is deprecated. 
     jQuery('body').prop('scrollTop', 0); 
     // Additionaly, animate it. 
     jQuery('body').animate({ scrollTop: 0 }); 

    }); 

    jQuery("#infoMessage").fadeIn('slow'); 
    jQuery(".light_overlay").fadeIn(); 

} 

這是代碼的最後片段,我建議增加並沒有工作(後4行註釋掉警報)

+1

問題沒有代碼和錯誤信息更難回答 –

回答

0

假設你正在使用jQuery,還有一些事情需要記住,儘管比傳統的JavaScript要少得多。

  1. 滾動時使用「body」而不是文檔。
  2. 使用道具()設置scrollTop
  3. 如果處理錨上的點擊事件,請始終調用event.preventDefault()。

示例代碼:

// Do not use .scrollTop() as it is deprecated. 
$('body').prop('scrollTop', 0); 

// Additionaly, animate it. 
$('body').animate({ scrollTop: 0 }); 
+0

這個遺憾的是沒有做的伎倆無論是。沒有任何事情發生,頁面上也沒有錯誤。 只是爲了給出一些背景知識,我有一個errorMessagingCheck函數,聲明一個錯誤變量並計算頁面上有多少錯誤。我將粘貼上述問題中的代碼作爲更新 – user1380540

0

您可以用<div>包裹和使用絕對位置以及設置它的頂部和左側爲0,這將讓你移動你想要的iframe它也允許您以編程方式設置滾動位置。

下面是一個例子:http://jsfiddle.net/BDC9Q/35/

+0

正如我所提到的那樣,正在單擊的按鈕位於iFrame中 - 但是在覆蓋框中,而不是在頁面上。 – user1380540

+0

所以我給了我的周圍的div換行ID,幷包括 - jQuery('wrap')。prop('scrollTop',0); - 我對第一次使用 - $ wrap.prop('scrollTop',500)有點困惑; - 你說要模擬滾動?這是幹什麼的? – user1380540

+0

我只是這樣做來模擬頁面已經滾動了一些,並顯示它點擊按鈕 – joelretdev