2013-10-17 60 views
0

我正在自動填寫網站的過程中。使用Excel宏,一旦我登錄到網站,在所需的文本框中插入一個值,然後單擊該按鈕,網站消息框就會出現一條提示,要求我確認 - 您確定要更新該值嗎?使用VBA Excel自動運行InternetExplorer的網站消息框

宏的執行停止在該級別,導致不再執行該宏。

在搜索解決方案時,我發現一個JavaScript函數,即在確認消息框時執行的函數,應該從宏中調用,而不是單擊網頁上的原始按鈕。

我想幫助編寫代碼在Excel宏中調用JavaScript函數。

以下是網頁視圖源頁面中的HTML代碼。

$('#reloadButton').click(function() { 
    $(this).text(
     $(this).attr('name') 
    ).attr('disabled', 'disabled'); 

    window.location.href = window.location.href.replace(/#.*$/, ''); 
}); 

SignalConsumer = function() {}; 

SignalConsumer.prototype = new TraderSettingsTool(); 

SignalConsumer.prototype.mySummaryPage = 'https://kvinvest.com/month/?action=template&tid=my_status'; 

SignalConsumer.prototype.isShowWaiver = 0; 

SignalConsumer.prototype.amountPrecision = 1; 



SignalConsumer.prototype._elements = { 
    "trading": { 
     "popup": $('#ssc-trading-popup'), 
     "amount": $('#ssc-trading-amount'), 
     "trade": $('#ssc-trading-trade'), 
     "provides": $('#ssc-trading-provides') 
    }, 
    "slippage": { 
     "popup": $('#ssc-slippage-popup') 
    }, 
    "provider": { 
     "popup": $('#ssc-provider-popup') 
    }, 
    "consumers":{ 
     "holder": $('#ssc-consumers-holder'), 
     "template": $('#ssc-consumers-template'), 
     "form":  $('#ssc-consumers-form') 
    }, 
    "subscribe": { 
     "server": $('#ssc-subscribe-server'), 
     "apply": $('#ssc-subscribe-apply'), 
     "loader": $('#ssc-subscribe-loader'), 
     "info": $('#ssc-subscribe-info'), 
     "form": $('#ssc-subscribe-form'), 
     "description": $('#ssc-subscribe-description') 
    }, 
    "activate": { 
     "form": $('#ssc-activate-form'), 
     "slippage": $('#ssc-activate-slippage'), 
     "amount": $('#ssc-activate-amount'), 
     "popup": $('#ssc-activate-popup'), 
     "apply": $('#ssc-activate-apply'), 
     "cancel": $('#ssc-activate-cancel'), 
     "agree": $('#ssc-activate-agree'), 
     "sll": $('#ssc-activate-sll-value'), 
     "loader": $('#ssc-activate-sll-loader'), 
     "redirect": $('#ssc-activate-redirect') 
    }, 
    "waiver": { 
     "popup": $('#ssc-waiver-popup'), 
     "agree": $('#ssc-waiver-agree'), 
     "apply": $('#ssc-waiver-apply'), 
     "subscribe": $('#ssc-waiver-subscribe') 
    }, 
    "history": { 
     "log": $('#ssc-history-log') 
    } 
}; 

SignalConsumer.prototype.bindEvents = function() { 
    var self = this; 

    this._elements.subscribe.form.find('form').submit(function() { 
     return false; 
    }); 


     // I THINK BELOW IS THE MESSAGE BOX POP UP 

    this._elements.subscribe.apply.click(function() { 

     if(!confirm('Are you sure to update?')){ 
      return false; 
     } 

     self.subscribeToServer(); 
     return false; 
    }); 

    // On show history popup 
    this._elements.history.log.click(function() { 
     self.loadHistoryLog(); 
     return false; 
    }); 

    // --- ACTIVATION LOGIC --- 
    this._elements.activate.apply.click(function() { 
     self.applyActivateServer(); 
     return false; 
    }); 

    this._elements.activate.agree.change(function() { 

     var disabled = $(this).is(':checked') ? '' : 'disabled'; 

     self._elements.activate.apply.attr('disabled', disabled); 
    }); 

    this._elements.activate.cancel.click(function() { 
     self.hidePopUp(); 
     return false; 
    }); 

    this._elements.activate.redirect.click(function() { 
     self.hidePopUp(); 
    }); 

回答

0

那麼,我不會在這個答案做的是提供您請求的代碼。
這個答案更像是一個建議,因爲我不完全確定你要去哪裏,如果你建議的技術方法是你真正想要的。

對於我來說,將VBA引擎與Web客戶端連接除非您只是針對數據檢索 - 例如Web查詢,否則這並沒有什麼意義。
如果要在VBA引擎和Web應用程序之間創建交互式數據流,創建與連接到數據庫系統的服務器端腳本(用PHP或ASP編寫)的連接似乎更合理(或者如果你想爲臨時會話變量存儲值)。

事實上,用戶輸入一個值,然後按下按鈕,表明您想要構建某個計算邏輯。這通常在服務器上完成,而不是瀏覽器級別。

因此,你做什麼,我的建議是:

Javascript/jQuery -> PHP/ASP -> VBA 

如果讓任何意義給你。