Войти

Показать полную графическую версию : ExtJs-выполнить запрос при evt: listener: resize


Killer_13
14-05-2012, 20:49
Таков вопрос.

Есть у меня связка jQuery + ExtJS, картинка из сервера грузится в окно ExtJS. Потом с этой картинкой работает jQuery.
Не спрашивайте почему и зачем - так нужно.

Нужно сделать следующее, я почти сделал, но мои знания ExtJs нулевые, помогите строчкой кода.

Значитс нужно отсылать на сервер повторный запрос если окно изменило свои размеры. Евент нашел и подписал на него вывод в Консоль, все срабатывает, а как мне на этот евент подписать запрос на сервер???

Вот здесь я посылаю первый запрос при загрузке, его мне нужно отсылать повторно по евенту.



$("#target").one('load', loadCallback).attr('src', adresse).each(function () {
if (this.complete) $(this).trigger('load');
});


Вот мой html.


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>JFreeChart_Bsp</title>
<link rel="stylesheet" type="text/css" href="./extjs/resources/css/ext-all.css">
<link rel="stylesheet" type="text/css" href="./jQuery/imgareaselect-0.9.8/css/imgareaselect-default.css"/>

<script type="text/javascript" src="./jQuery/jquery-1.7.2.js"></script>
<script type="text/javascript" src="./jQuery/imgareaselect-0.9.8/scripts/jquery.min.js"></script>
<script type="text/javascript" src="./jQuery/imgareaselect-0.9.8/scripts/jquery.imgareaselect.js"></script>

<script type="text/javascript" src="./extjs/ext-all-debug.js"></script>

</head>

<body>

<script type="text/javascript">
Ext.onReady(function() {
var win = new Ext.Window({
width : 1465,
height: 785,
id : 'autoload-win',
autoScroll : true,
html: '<div id="generateImage"><img id="target" alt="generateImg" height="{height}" width="{width}" /></div>',
listeners:{
resize: function (panel, w,h){
console.log("wi: "+ w +" Hi: "+h);
}
}
});

win.show();

$("#target").one('load', loadCallback).attr('src', adresse).each(function () {
if (this.complete) $(this).trigger('load');
});

$('#target').imgAreaSelect({
handles: true,
movable: false,
resizable: false,
autoHide: true,
onSelectEnd: function (img, selection) {
$("#target").one('load', loadCallback).attr("src", adresse + "&x1=" + selection.x1 + "&y1=" + selection.y1 + "&width=" + selection.width + "&height=" + selection.height).each(
function () {
if ($("#target").complete)
$("#target").trigger('load');
});
}
});
});
</script>

<script type="text/javascript">
var random = Math.floor((Math.random() * 10000) + 1);
var cookie = "cookieName=" + random;
var adresse = "/JFreeeChartServlet/generateImg?" + cookie;
var cookieString = new String();

function loadCallback() {
cookieString = get_all_cookie(random)

// console.log("Cookie@"+random+" DocCookie = " + cookieString);
// console.log("Cookie@"+random+" : "+substr_search("plotWidth"));
// console.log("Cookie@"+random+" : "+substr_search("plotHeight"));
// console.log("Cookie@"+random+" : "+substr_search("plotX"));
// console.log("Cookie@"+random+" : "+substr_search("plotY"));


setVars(substr_search("plotWidth"), substr_search("plotHeight"), substr_search("plotX"),substr_search("plotY"));
}

function get_all_cookie(cookie_name) {
var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');

if (results) return (unescape(results[2]));
else return null;
}

function substr_search(str){
var strStartPos = cookieString.search(str);
var startPos = cookieString.indexOf("=", strStartPos);
var endPos = cookieString.indexOf(":", strStartPos);

return cookieString.substring(startPos+1, endPos);
}

</script>
</body>
</html>



СПААСИБО!!

ferget
14-05-2012, 22:05
такие вопросы задавайте в этот (http://forum.oszone.net/forum-22.html) раздел

Killer_13
14-05-2012, 22:26
Амины перенесите если это того стоит.




© OSzone.net 2001-2012