2012-12-10 17 views
1

編輯:爲什麼這不工作?使所有圖像的來源https://使用* .user.js

@match http://tumblr.com/* 
$(document).ready(function() { 
    $(img).each(function() { 
     var i = $(this).attr("src"); 
     var n = i.replace("http://", "https://"); 
     $(this).attr("src", function() { 
      return n; 
     }); 
    }); 
});​ 

編輯:爲了說清楚,我沒有自己的網站。我想讓網站上的圖像像https://facebook.com/https://tumblr.com/位於https上。

+8

您的網站本身在https上嗎?如果是這樣,你可以使用URL,如「// 24.media.thumblr.com/xxx'',它會自動工作。 –

+1

作爲替代方法,只需使用''''開始你的URL,而不用協議。瀏覽器將使用任何當前的協議。 – Brad

+1

我不建議嘗試這樣做,它會導致圖像被請求兩次,一次來自http,一次來自https。按照上面的建議使用''''。 –

回答

1

的OP是真的很近,只需要調整選擇:$(img)$("img")

$(document).ready(function() { 
     $("img").each(function() { 
      var link = $(this).attr("src"); 
      var newLink = link.replace("http://example.com", "//example.com"); 
      $(this).attr("src", function() { 
      return newLink 
     }); 
    }); 
    }); 

的jQuery要求各地使用DOM元素選擇報價時,OP腳本會拋出IMG沒有定義。

+1

您是否想介紹一些其他程序員的答案,以瞭解它是如何幫助解決問題的? – Daenarys

2

嘿男人它是如此簡單,因爲我可以理解你想要的!你想改變所有圖像src?

$(document).ready(function() { 
$("img").each(function() { 
var i = $(this).attr("src"); 
var n = i.replace("http://", "https://"); 
$(this).attr("src", function() { 
return n; 
}); 
}); 
}); 
+0

嘿,它只會改變src,但它取決於tumblr的域名,不管它是否支持https:// secure or not!我的手離開了這個答案吧! –

+0

現在測試它,我認爲這應該工作! –

+0

@WilsonB​​iggs這應該是有效的,但請注意,這將需要每個圖像被請求兩次,如問題的評論中所述。但它可能是您的情況的最佳類型的解決方案,你不能修改HTML – Ian