2015-10-20 26 views
0

我正在嘗試構建一個Chrome擴展程序,以將數據輸入到諸如toysrus.com和macys.com等網站上的在線表單中。 Chrome擴展可以將JavaScript注入網站以進行測試。我正在嘗試確定哪個框架正在用於在網站上進行表單驗證。我如何知道哪個JavaScript框架驗證網站上的表格

我必須改變輸入字段,如爲狀態選擇「CA」,或使用javascript輸入姓氏。但如果我不知道他們使用的是什麼系統,我不能這樣做。每個框架都有它自己的規則,用於更改輸入字段並將更改註冊到框架。

我想看看是否有任何方法可以告訴哪個框架正在進行驗證,所以我可以使用正確的命令。

在toysrus.com的情況下,prototype.js和jquery都是通過變量jQuery或Prototype是否存在檢測到的,但我不得不使用原型語法來獲取和更改表單中的值,而不是jQuery 。我必須通過手動進行多次試驗和錯誤才能做到這一點。

是否有任何JavaScript我可以寫入並注入到頁面中,以告知哪些框架正在用於驗證這些網站上的表單。

我注意到在上面的例子中,$(「#elementid」)返回null,但是$(「elementid」)返回了一個實際的元素。這告訴我Prototype正在進行實際驗證。是否有任何測試或可能是一個js庫,可以確定哪些框架正在使用的元素?

+0

作爲開發者,你必須知道在哪個頁面上,哪些庫已經加載,然後你檢查庫中是否定義或不是 –

+1

使用vanilla js ...問題解決 – charlietfl

+0

@charlietfl,yep,vanilla js是好的,它很小,只有25個字節,比角度,jquery更受歡迎... –

回答

0

隊友,給你具體的情況下,原型和jQuery與美元符號相沖突,

只是這樣做:

<!-- Another way to put jQuery into no-conflict mode. --> 
<script src="prototype.js"></script> 
<script src="jquery.js"></script> 
<script> 

jQuery.noConflict(); 

jQuery(document).ready(function($) { 
// You can use the locally-scoped $ in here as an alias to jQuery. 
$("div").hide(); 
}); 

// The $ variable in the global scope has the prototype.js meaning. 
window.onload = function(){ 
    var mainDiv = $("main"); 
} 

</script> 

`

更新: 隊友,還有會如果你堅持使用框架,不能保證解決方案,只有可能的方式是使用純JavaScript,即香草js!

+0

@techdog,隊友,如果你堅持使用框架,將不會有任何保證解決方案,只有可能的方式是使用純JavaScript,即香草js! –

+0

對此感到抱歉。我原來的帖子中不清楚。我無法控制其他網站使用的框架。我試圖檢測該網站用於表單驗證的框架。我編輯了原來的帖子,因爲它很混亂。 – techdog

0

首先,除非你有複雜的事情要做到這一點需要一個框架,這可能是最簡單的,只需使用document.querySelector()document.querySelectorAll()和使用純JavaScript和不擔心的框架。

如果您確實想確定哪個框架存在,那麼您可以爲每個框架開發一個功能測試並按照您關心的順序對它們進行測試。

例如:

if (typeof jQuery !== "undefined") { 
    // jQuery present 
} else if (typeof angular !== "undefined") { 
    // angular present 
} else if (typeof Prototype !== "undefined") { 
    // Prototype present 
} else if (typeof dojo !== "undefined") { 
    // dojo present 
} else { 
    // don't see any framework 
} 

取決於你想要做什麼,有更全面的測試可能過於每個框架。

僅供參考,不熟悉的網頁使用jQuery的時候,我會建議使用jQuery作爲根標識符,而不是$jQuery(...),不$(...)。如果其他框架正在使用$,這將防止感到困惑。

+0

他在這裏開了一張新票,嘆氣..http://stackoverflow.com/questions/33226777/how-would-i-use-javascript-to-identify-which-javascript-frameworks-are-being-use,好吧,他不會給你TICK ... –

+0

我關閉了另一個問題,我在這裏再次嘗試。原來很混亂,聽起來像我可以選擇框架。這是一個Chrome瀏覽器擴展程序,它可以「查看」現有網站並填寫玩具熊,macys等網站上的表單。 – techdog

+0

@techdog - 那麼我想我會在一段時間內刪除我的答案,因爲您現在已將問題更改爲其他的東西我的回答不包括。 – jfriend00

相關問題