Получение ширины изображения с помощью JavaScript имеет проблемы? - PullRequest
0 голосов
/ 11 ноября 2010

Это код, который я получил от сети, чтобы получить ширину изображения.Это прекрасно работает.

<script type="text/javascript">
function CreateDelegate(contextObject, delegateMethod)
{   
        return function()
            {
                return delegateMethod.apply(contextObject, arguments);
            }
}


function imgTesting_onload()
{
    image_width=this.width;
    alert(image_width);//First Alert
}
</script>
var imgTesting = new Image();
imgTesting.onload = CreateDelegate(imgTesting, imgTesting_onload);
imgTesting.src = "${str_applicationPath}/common/images/reports/"+report+".png"
//Second Alert//

Но мне нужно получить доступ к переменной image_width в месте // Second Alert // в приведенном выше коде. Я не получаю значение ширины там. Что-нибудь нужно сделатьчтобы получить значение там?

Пожалуйста, помогите мне ......... Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Это невозможно.На данный момент ширина неизвестна.В этом и заключается весь смысл события onload.Вместо этого вы должны выполнить нужный код в «Втором предупреждении» в imgTesting_onload.

0 голосов
/ 11 ноября 2010

вы можете использовать imgTesting.width , чтобы получить ширину изображения.

Например:

var imgTesting = new Image ();

imgTesting.src => "$ {str_applicationPath} / common / images / reports /" + report + ". Png"

// Второе оповещение //

предупреждение (imgTesting.width);

Ниже приведенный код не требуется

function CreateDelegate(contextObject, delegateMethod)
{   
        return function()
            {
                return delegateMethod.apply(contextObject, arguments);
            }
}
function imgTesting_onload()
{
    image_width=this.width;
    alert(image_width);//First Alert
}
imgTesting.onload =CreateDelegate(imgTesting, imgTesting_onload);
...