Попытка получить размер файла фонового изображения в greasemonkey - PullRequest
2 голосов
/ 19 января 2011

Я хотел бы получить размер файла фонового изображения кнопки отправки с помощью javascript / greasemonkey.

Ps Я не хочу перезагружать страницу или делать новые вызовы к изображению.Так как изображение отличается при каждой загрузке.

Изображение не отличается каждый раз, только имя и URL: D
К сожалению об этом ..: /

Спасибовсе остальное, я решил сам свою проблему :)

Ответы [ 2 ]

2 голосов
/ 19 января 2011
<script type="text/javascript">
    function filesize (url) {
        // http://kevin.vanzonneveld.net
        // +   original by: Enrique Gonzalez
        // +      input by: Jani Hartikainen
        // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
        // +   improved by: T. Wild
        // %        note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.
        // %        note 1: Synchronous so may lock up browser, mainly here for study purposes.
        // *     example 1: filesize('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm');
        // *     returns 1: '3'

        var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
        if (!req) {throw new Error('XMLHttpRequest not supported');}

        req.open('HEAD', url, false);
        req.send(null);

        if (!req.getResponseHeader) {
            try {
                throw new Error('No getResponseHeader!');
            } catch (e){
                return false;
            }
        } else if (!req.getResponseHeader('Content-Length')) {
            try {
                throw new Error('No Content-Length!');
            } catch (e2){
                return false;
            }
        } else {
            return req.getResponseHeader('Content-Length');
        }
    }
</script>

<style type="text/css">
    input[type="submit"] {
        background-image: url("images/button_submit.gif");
    }
</style>

<body>
    <input type="submit" value="Submit">
</body>

<script type="text/javascript">
    document.write(filesize($('input[type="submit"]').css("background-image").match(/url\(\"(.*)\"\)/)[1]));
</script>
1 голос
/ 22 января 2011

"Я не хочу перезагружать страницу или делать новые вызовы к изображению. Так как изображение отличается от каждой загрузки."

Нет способа получить эту информациюв JavaScript или Greasemonkey без повторного вызова на сервер.Вам нужно написать собственное дополнение / расширение, чтобы программно получить его при первом вызове.

Однако вы можете увидеть background-image, filesize прямо сейчас.Просто щелкните правой кнопкой мыши страницу и выберите Просмотр сведений о странице (Firefox), а затем перейдите на вкладку «Мультимедиа».

Также можно установить дополнение для веб-разработчиков .Может отображать информацию об изображении, включая изображение BG, размер файла.

...