首先,我是JavaScript新手,所以這個問題可能很愚蠢。 我有一個要求,我會提供一個JS腳本到其他網站包括在他們的網頁。在第三方js代碼中使用jquery
現在我的問題是我應該使用jQuery或純javascript.Will /可以jQuery影響網站的其餘功能。 加上我會用普通的javascript使用jquery的好處是什麼。
我的要求是獲取網站的所有圖像,並對這些網站上的圖像進行一些處理。
在此先感謝。
首先,我是JavaScript新手,所以這個問題可能很愚蠢。 我有一個要求,我會提供一個JS腳本到其他網站包括在他們的網頁。在第三方js代碼中使用jquery
現在我的問題是我應該使用jQuery或純javascript.Will /可以jQuery影響網站的其餘功能。 加上我會用普通的javascript使用jquery的好處是什麼。
我的要求是獲取網站的所有圖像,並對這些網站上的圖像進行一些處理。
在此先感謝。
我會說,如果處理不涉及jQuery,那就不要使用它。
您需要處理以下問題,如果你有它
所有問題都有解決方法/解決方案,但您必須實現每個人的每一個。
如果你只需要找到頁面中的所有圖像,那麼你可以使用.getElementsByTagName()
方法
var imagelist = document.getElementsByTagName('img');
,只是做了處理..
您可能需要的課程附加你的代碼在load
事件,以確保無論你的代碼做的DOM是準備接受它..
現代瀏覽器,這將是.addEventListener()
,而IE瀏覽器將是.attchEvent()
你的腳本可能是這樣的
(function(){ // wrap in a self-invoking function to avoid global name-space pollution
// attach to the load event so out code runs once the page has loaded
if (window.addEventListener) { // modern
window.addEventListener('load', imageProcessor, false);
}
else if (window.attachEvent) { // IE
window.attachEvent('onload', imageProcessor);
}
function imageProcessor(){
// get all images
var imagelist = document.getElementsByTagName('img');
// loop the list of images to do something with each image
for (var img = 0; img < imagelist.length; img++)
{
var currentImage = imagelist[img];
// do processing on the currentImage which hold a reference to the image
}
}
})(); // do the self-invoking
JQuery比普通的javascript更方便。您不必擔心跨瀏覽器兼容性問題(例如IE與Firefox與Chrome)。我會推薦通過javascript,除非你想自己處理:)
你可以加載Jquery庫,但這可能比你要找的東西稍重。此外,您需要從服務器獲取庫,這會增加另一個失敗點(但是,如果您將其託管在自己的服務器上,那麼您將擁有更多的控制權)。
TLDR:JQuery很方便。如果你有權訪問它,那麼你應該使用它。
這將是更容易實現與jQuery,主要是因爲你希望能夠到你的腳本分發到任何瀏覽器(和jQuery是一個跨瀏覽器庫),但它確實有它的缺點。
如果這是你自己的項目,自己的網頁,你確切地知道什麼時候加載/執行,但如果你給你的腳本給其他人,你必須思考的3個問題至少包括:
noConflict
方法來解決,但我已經看到了它在某些情況下既有記得起起落落,這實際上取決於你在做什麼,所以,如Gaby aka G. Petrioli所說,「如果處理不涉及jQuery,那就不要使用它」。
它的工作..這正是我正在尋找的..因爲我會提供的代碼給其他客戶使用他們的網頁。我擔心兼容性問題。 – shashuec 2011-05-21 07:14:57
我主要是後端工程師,很少或沒有JS知識。但作爲項目的一部分,我將不得不自己處理這部分.. – shashuec 2011-05-21 07:17:33
@Shashwat,我們都在那裏..建議的代碼是相當不可靠的的衝突,所以它是一個好的開始..你只需要修改'imageProcessor'方法來滿足你的需求。 – 2011-05-21 07:19:35