Попытка получить размер файла фонового изображения в greasemonkey

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

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

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

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

2 ответа

Решение
<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>

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

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

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

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

Другие вопросы по тегам