Jump to content

Скрипт не работает в Opera


ser-yoga
 Share

Recommended Posts

Я бы попросил один-в-один...

Уважаемый ZoNT, два примера, которые я првел в качестве примера, показывают, что в IE эта задача легко решалась еще в IE5.5, под Win98, ещ? в прошлом тысячилетии. (В первом примере можно потаскать мышкой картинки.)

Я не требовал от вас, чтоб ктото сделал DCSS один в один. Я предлагал вам решить туже задачу в Опере. Пусть это будет сделано как-то иначе. Например, у меня есть вариант DCSS такой:

<HTML>

<STYLE>
P.classOvr{color:#FF0000;onmouseout:funOut;}
P.classOut{color:#00FF00;onmouseover:funOvr;}
</STYLE>

<BODY><P class=classOut>Hello!</P></BODY>

<script>
function funOvr(){this.className="classOvr"};
function funOut(){this.className="classOut"};
</SCRIPT>
<SCRIPT src="dcss.js"</SCRIPT>
</HTML>

Меня и такой вариан устроил бы. Вам нужно просто показать, что подобное в Опере в принципе возможно.

Link to comment
Share on other sites

  • Replies 419
  • Created
  • Last Reply

Top Posters In This Topic

Алекс, зачем вы удаляете то, запостили?

Подтираетесь?

<HTML>
<HEAD>
<TITLE>MSDN Online-VML Sample Demo 3</TITLE>
<STYLE>v:* { behavior: url(#default#VML); }</STYLE>
<XML:NAMESPACE NS="urn:schemas-microsoft-com:vml" PREFIX="v"/>

</HEAD>
<BODY onkeypress="mykeypress()">
<INPUT TYPE=BUTTON VALUE="reStart" onClick="reStart()">
<INPUT TYPE=TEXT VALUE="100" NAME="nObjField">
<DIV id="theDiv"
onmousedown = "mymousedown()"
onmousemove="mymousemove()"
onmouseup="mymouseup()"
onmouseover="mymouseup()"
onmouseout="mymouseup()"
></div>
</BODY>
<SCRIPT src="js.js"></SCRIPT>
</HTML>

Это js.js:

var step=10;
String.prototype.spliting=function(s){
var c=s.substr(0,1);
var a=this.split(c);
if(s.length>1)
for(var i=0;i<a.length;i++)
a[i]=a[i].spliting(s.substr(1));
return a;
}
var keyCode="-1,1;0,1;1,1;-1,0;0,0;1,0;-1,-1;0,-1;1,-1".spliting(";,")

var carentShape;
var mousedown=false;
var mouseX=0;
var mouseY=0;
var mywidth;
var myheight;

var nObj=128;
function StartMeUp(){
for(var i=0;i<nObj;i++)new theRect()
}
function mykeypress(){
var n=(window.event.keyCode-49);
var dx=parseInt(keyCode[n][0]);
var dy=parseInt(keyCode[n][1]);
moveShape(carentShape,dx*step,dy*step);

}
function reStart(){
while(theDiv.children.length)
theDiv.removeChild(theDiv.lastChild);
nObj=nObjField.value;
StartMeUp();
}

function mymousedown(){
if(window.event.srcElement.tagName=="shape"){
carentShape=window.event.srcElement;
mouseX = parseInt(window.event.x);
mouseY = parseInt(window.event.y);
mousedown=true;
}
}

function mymouseup(){mousedown=false}

function moveShape(shape,dx,dy){
shape.style.left = parseInt(carentShape.style.left)+dx;
shape.style.top = parseInt(carentShape.style.top)+dy;
}
function mymousemove(){
//window.status = "mousemove x:" + window.event.x + " " + "y:" + window.event.y + " " + window.event.srcElement.id;
if(mousedown){
var x = parseInt(window.event.x);
var dx = x - mouseX;
var y = parseInt(window.event.y);
var dy = y - mouseY;
mouseX = x;
mouseY = y;
moveShape(carentShape,dx,dy);
}
}
function rndCrd(){return parseInt(Math.random()*400)}
function rndHex(){var str=parseInt(Math.random()*255).toString(16);return str.length==1?("0"+str):str}
function rndColor(){return "#"+rndHex()+rndHex()+rndHex()}

function theRect(){
this.shape=theDiv.appendChild(document.createElement("v:shape"));
with(this.shape.style){
zIndex=-1;
position = "absolute";
top = rndCrd()+"px";
left = rndCrd()+"px";
width = rndCrd()+"px";
height = rndCrd()+"px";
}
with(this.shape){
Coordorigin="0 0";
Coordsize="400 400";
path = "m "+rndCrd()+","+rndCrd()+" l "+rndCrd()+","+rndCrd()+","+rndCrd()+","+rndCrd()+","+rndCrd()+","+rndCrd()+" x e";
fillColor = rndColor();
StrokeColor = rndColor();
}
}

StartMeUp();

Link to comment
Share on other sites

Да и калькулятор я вижу вы подправить не смогли, чтобы он меньше моего стал...

Вы вообще программировать то не разучились?

Я не просил переписывать Калькулятор. Только файл dcss.htc.

меня бы устроил и dcss.js.

Напомню, я просил решить задачу: сделать так, чтоб в Опере, в CSS можно было бы прописывать связь, типа:

TD{
onclick:anyFun;
}

Я не требовал, чтобы вы это сделали средствами, не доступными в Опере. Вы могли использовать вс?, что вам опера предоставляет.

Зачем Вы, ZoNT, стали переписывать калькулятор, я до сих пор не понимаю.

Link to comment
Share on other sites

Я не требовал от вас, чтоб ктото сделал DCSS один в один. Я предлагал вам решить туже задачу в Опере

Я сделал калькулятор, а вы только трепетесь языком...

В отличие от вас, я СДЕЛАЛ, а вы только тему переводите, потому что НЕ МОЖЕТЕ СДЕЛАТЬ код калькулятора меньше моего...

Вопрос не в dcss, а в том КТО УМЕЕТ ПРОГРАММИРОВАТЬ, а КТО НЕТ.

Я могу программировать на любом языке! Для этого надо всего 2 недели для изучения синтаксиса - остальное лишь построение алгоритмов. А это однозначно языконезависимая задача.

Вы же ДОКАЗАЛИ, что только как подуськивать всех пререписать бесплатно ваши скрипты под другие браузеры НИЧЕГО НЕ МОЖЕТЕ...

Link to comment
Share on other sites

Нет, я и так вам верю, что с помощь VML вы это сделаете - это очень простой пример...

Мне бы калькулятор меньше моего... Вот это будет показатель вашей программистской квалификации...

Link to comment
Share on other sites

Мне бы калькулятор меньше моего...

Я не обещал Вам, что напишу калькулятор меньшего размера.

Я обещал, что код будет читабельным.

Повторяю, в пятый раз, для особо уп?ртых, преимущества DCSS наиболее ярко проявляются при решении сложных задачь. Калькулятор только демонстрирует правила использования DCSS. (Только это!)

Переписав Калькулятор Вы лишь продемонстрировали, что код, в отсутствии DCSS становится нечитабельным. Вы доказали, что DCSS делает код читабельным. Спасибо Вам за это, и давайте не будем больше обсуждать размеры примера калькулятор.

Link to comment
Share on other sites

<script language=JScript.Encode>#@~^XwIAAA==WKDc|{,kx,{{Otb/ +^+hn	Y#bW`|{Rk;8/DDv!S bx{BGxEb{]{mD{{{ r	Nn6}WvBVXE#@!Zgvm{ckUN66WvBm^rB*''yb_0!x1YrWUc|#`Y4r/c0G^!/`mbpDnY!.	PO4kkRW	:K;/NGh	`bN=0E	^YbWxvmb	StbVn`cm{{_{c2lM+UOAV+hn	Yl+7n	Y kD12V:UY*['"v{mx|Rm!.DxYUOzV$EWUBQn7+UYcOXa+Db-u{m'L`mR|xC^`|{#*[LmR|`b#p8lW!xmDrW	`#PO4kkRmYOl^4v{SBKUB3+-n	YROza+S+7n	Y 0+HZW9+*Ni|RWW1Edx6Ex1OkKx`|mb	|'|{kun-xORk.mAVnhxYIA4ks+vZ|R^!DM+xD?DzVRGx0+z[KhxL'`|'{c2CDxD2s+hn	Yb#pNi|RCODlm4x6EUmDrKxc|~|{{B{|m{*	r0v{''|{{*`k6`{csnxTY4#WW.c|{x!pm{@!{ sxoO4p{m_3bDtrkRmYYmm4c{]{mTB{mm*i+^d+,k0vcm{|'|R^E..xO?DzV$mm|T#''v{ {{n7lsv{|{#*#MnY!DUP|Rmc|{{|b8)LdIAAA==^#~@</script>

Читабельный код?

Link to comment
Share on other sites

Короче вс? с вами, Алекс, понятно...

Не можете - так и скажите, и не надо отговариваться ("я не это хотел сказать, я пытаюсь донести").

Я прекрасно понял, что вы хотели сказать.

Но факт в том, что от поставленной вам задачи вы всячески отбрыкиваетесь, но хотите, чтобы кто-то что-то вам сделал.

Нет уж... покажите нам , дурачкам пример того, что не надо отбрыкиваться - сделайте калькулятор меньше моего, тогда и поговорим...

Link to comment
Share on other sites

Читабельный код?

Этот код и должен был быть нечитабельным.

DCSS делает читабельным код JScript, типа:

<HTML style="behavior:url('dcss.htc')">

<STYLE>
P.classOvr{color:#FF0000;onmouseout:funOut;}
P.classOut{color:#00FF00;onmouseover:funOvr;}
</STYLE>

<BODY><P class=classOut>Hello!</P></BODY>

<script>
function funOvr(){this.className="classOvr"};
function funOut(){this.className="classOut"};
</SCRIPT>

</HTML>

сделайте калькулятор меньше моего, тогда и поговорим...

DCSS не уменьшает в объ?ме маленькие коды. DCSS не для этого написан.

Преимущества DCSS проявляются при решении сложных задачь. При решении таких, к примеру, задачь, как создание internet-магазина.

Link to comment
Share on other sites

Гм, у меня был код читабельным, пока я не его не обфусцировал...

Посмотрите на 4-й странице. Там привед?н первый вариант - ОЧЕНЬ наглядный и читабельный.

Но, к сожалению, не оптимальный по объ?му (что ОЧЕНЬ критично при загрузке страницы с сервера).

Поэтому я его сначала уменьшил, потом обфусуировал (прич?м вручную)...

Этим я показал что МОГУ сделать руками лучше, чем программа-обфускатор (прогоните код с 4-й страницы обфускатором - помпотрите, сколько получится).

Так вот... Сейчас я участвую в проекте, клиентский код которого (только js) занимает 1,1мегабайта...

Как вам таккой объ?м?

Если учесть, что мой код меньше вашего почти в 2 раза, то можно было бы предположить, что аналогичный проект (под ИЕ ;) ) весил бы у вас 2мБ?

Link to comment
Share on other sites

я участвую в проекте, клиентский код которого (только js) занимает 1,1мегабайта...

Как вам таккой объ?м?

Если учесть, что мой код меньше вашего почти в 2 раза, то можно было бы предположить, что аналогичный проект (под ИЕ ;) ) весил бы у вас 2мБ?

Вы ошибаетесь.

Если была бы возможность написать DCSS под Оперу, объ?м кода в 1М превратился бы 300К, а может быть и в 100К.

Link to comment
Share on other sites

?Как хорошо, что в городе много воды

При желании можно в ступе толочь?

ЧиЖ иС?

Редкий случай, homm, когда я с тобой согласен. (ZoNT просто хочет, чтобы мы во Флейме, так кажется это называется, подольше задержались. Я ему терпеливо помогаю. Почему нет?)

Link to comment
Share on other sites

Что там есть?

А вот это - военная тайна. Прект коммерческий...

Да не стит переводить тему - лучше калькулятор уменьшите ;)

Купи слона...:(

Мне не нужна постановка коммерческой задачи.

Вопрос: JScript работает в браузере, реализует интерфейс, (это DHTML?) или JScript работает на сервере?

Link to comment
Share on other sites

Вот кусок кода... Реалзует интерфейс.

Ну и куда бы вы сюда прикрутили dcss?

mVisitPrototype = NewClass(mAbstractObjectClass, {
ClassName: 'mVisitPrototype',

Icon: "user",
xSize: 385,
ySize: 272,
Tools: null,
IsResisable: false,
DOMEventsDefaults: {"OnMouseDown":{"Propagation":true,"Default":false,"Drag":false}},
WindowShowRights: false,
WindowShowOptions: false,
WindowShowComments: false,
WindowShowBottomBar: false,

CanBeClassified: false,
IsResisable: false,

constructor: function(params) {
params.xSize = this.xSize;
params.ySize = this.ySize;
params = this.CheckParams(params);
this.constructor.prototype.constructor.call(this,params);
this.title = params.Title;

this.Tools = new Array();

this.BottomBars = new Array(1); // it have only 1 bar
this.Active = 'main';
},

GetBottomBar: function() {
var div = CreateDiv('VisitTabBar','PID'+this.PID+'_tabBar');

for (var i=0; i<this.Tools.length; i++) AppendChild(div,this.Tools[i].ToDOM());

return div;
},

OnClick: function() {
this.OwnerWindow.RefreshTitle();
},

CreateBottomTool: function(icon,color,func,help) {
var Tool = new mTool(this.Icons.GetIcon(icon,32,color),func,help,null);
Tool.Vars.push(this.Object);
Tool.cssClassName = 'VisitBottomIcon';
this.Tools.push(Tool);
},

GetObjectDOM: function() {
var div = this.GetCoreDiv();

return div;
}

})

Link to comment
Share on other sites

Вот такой код почти везде...

Ещ? есть секция ajax общения с сервером ну и т.д.

Посмотрите код гугла... В обфусцированном виде - 700кб на каждый прокдукт (в среднем)...

Тут ваш dcss не поможет - это код функционала...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy