簡體   English   中英

我如何知道哪個JavaScript框架正在驗證網站上的表單

[英]How do I tell which javascript framework is validating forms on a website

我正在嘗試構建一個Chrome擴展程序,以將數據輸入到toyrus.com和macys.com等網站的在線表單中。 chrome擴展程序可以將javascript注入網站以進行測試。 我正在嘗試確定正在使用哪個框架在網站上進行表單驗證。

我必須更改輸入字段,例如為州選擇“ CA”,或使用javascript輸入姓氏。 但是,如果我不知道他們使用的是什么系統,我將無法做到這一點。 每個框架都有其自己的規則,用於更改輸入字段並在框架中進行更改注冊。

我正在嘗試查看是否有任何方法可以判斷哪個框架正在執行驗證,因此我可以使用正確的命令。

就Toysrus.com而言,prototype.js和jquery都按照是否存在變量jQuery或Prototype進行檢測,但我必須使用原型語法來獲取和更改表單而不是jquery的值。 我不得不通過大量的嘗試和錯誤來手動執行此操作。

有什么我可以寫並注入頁面的JavaScript來告訴您正在使用哪個框架來驗證這些網站上的表單。

我注意到在$(“#elementid”)以上返回null的情況下,但是$(“ elementid”)返回了實際元素。 那告訴我原型正在做實際的驗證。 是否有任何測試或js庫可以確定元素上使用的框架?

mate,對於您的具體情況,您的原型和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,即純javascript!

首先,除非您要做復雜的事情需要框架,否則僅使用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(...)而不是$(...) 如果其他框架正在使用$則可以避免感到困惑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM