anpera.net
http://anpera.homeip.net/phpbb3/

Opera - Zu nichts zu gebrauchen.
http://anpera.homeip.net/phpbb3/viewtopic.php?f=11&t=4437
Seite 1 von 1

Autor:  MySql [ Do 27 Mär, 2008 18:33 ]
Betreff des Beitrags:  Opera - Zu nichts zu gebrauchen.

Alloá,

wollte mal nach einem JS Script schaun, womit man das "Rechtsklickmenü" verändern kann. (Für mein LotGD)
Natürlich fand ich bei google direkt gaaaaaanz viele... Nun.. Ich testete es mit dem IE...
Und.. das veränderte Kontextmenü wird angezeigt.
Ich testete es mit Opera...
Und.. das veränderte Kontextmenü wird NICHT angezeigt, sondern das stink normale....

Nun... in solchen hinsichten ist Opera ja wirklich zu nix zu gebrauchen!
Oder gibt es JS Scripte für das Menü, die auch bei Opera funtzeln???

PS: Page aufrufen und dann mal ein Rechtsklick machen.. (Ie / FF / Opera)... :cry:
Liebe Grüße,
My.

- Suche derweil noch verbittert in Google.

Autor:  Montekar [ Do 27 Mär, 2008 18:39 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Wenn ich möchte, das jemand mein Kontextmenü verändert, dann nutze ich den Internet Explorer. Eben das möchte ich aber nicht! Der Ersteller einer Website hat meiner Meinung nach kein Recht, meinen Browser zu manipulieren. Rechtsklick unterdrücken fällt auch darunter.

Autor:  Eliwood [ Do 27 Mär, 2008 18:56 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Das Kontextmenü ist ein wichtiges Werkzeug in allen Browsern und hilft mir, zum Beispiel bestimmte Links zu kopieren, Bilder zu speichern, Änderungen rückgängig zu machen oder bequem den WebDeveloper zu bedienen. Eine Webseite hat mir diesen wichtigen Klick nicht zu verbieten!
Es ist gut, dass Opera das nicht unterstützt. Firefox sollte es eigentlich auch machen. PS: Opera wird dämnächst ACID3 schaffen - also sag nicht, dass der nichts drauff hat.

Autor:  MySql [ Do 27 Mär, 2008 19:01 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Man soll es ja auch im Profil frei endscheiden können! - Das heist man kann das veränderte Menü ein und ausschalten!

- Also hat man im Opera keine Chance dies zu tun? o.o

Autor:  Eliwood [ Do 27 Mär, 2008 19:03 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

MySql hat geschrieben:
Man soll es ja auch im Profil frei endscheiden können! - Das heist man kann das veränderte Menü ein und ausschalten!

- Also hat man im Opera keine Chance dies zu tun? o.o


Nochmal: Nein, und das ist auch gut so! Weisst du eigentlich, wie man das missbrauchen könnte? Der IE mit seinen Pseudostandards ist nicht das Mass aller dinge... und EcmaScript (Die Standardisierte Version von JavaScript) erlaubt solche Manipulationen auch nicht. Übrigens ist es genau so unsinnig, den Text in der Statusleiste verändern zu wollen.

Autor:  Montekar [ Do 27 Mär, 2008 19:07 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Opera schneidet beim Acid 3 Test wesentlich besser ab als der Internet Explorer 8)

Eliwood hat geschrieben:
Firefox sollte es eigentlich auch machen.


Der "neue" Firefox 3.0b2 hat bereits eine entsprechende Funktion, mit der man solche Manipulationen unterbinden kann ;) Sollte mit der entsprechenden Erweiterung aber auch mit dem Firefox 2.*.*.* möglich sein.

Autor:  MySql [ Do 27 Mär, 2008 19:14 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Gut^^
Aber man kann es mit dem Linksklick Event-Handler machen...

Dort suche ich dann mal in google.. (Denke mal, das es keine Manipulation ist ;) )

Es sei denn, jemand kennt schon ein Linksklickmenüscript, dann brauch ich nicht suchen. :lol:

My.

Autor:  Serius [ Do 27 Mär, 2008 20:28 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Sowas ist ganz schnell selbst programmiert ;) einfach auf den Bodytag ein eventhandler ansetzen der beim klicken aktiviert wird. Der Klick löst aus das ein div oder span Tag erstellt wird in dem die Links sind. Natürlich sollte die position des div/span Tags mit hilfe der Abstände des Mauszeigers zum Bildschirmrand berechnet werden so das es auch dort erscheint wo man hin klickt. Ich würde aber von all dem abraten da es sehr nervig ist (so kann ich es mir vorstellen) wenn man ausversehen klickt das dann jedesmal dieses Menü erscheint und erst recht beim kopieren von texten etc.
Und zum Thema Opera kann ich mich nur den beiden anschliessen. Ich nutze jetzt seid über einem Jahr Opera und bin sehr zufrieden damit ;)

Autor:  MySql [ Do 27 Mär, 2008 21:05 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Na ich nutze selber Opera. Doch in manchen Situationen, könnte ich es einfach an die Wand klatschen!
Na habe es jetzt ein Kontextmenü gefunden, das man mit "STRG+Linksklick" aufbekommt, so bleibt in allen Browsern das normale erhalten! - Alloá. *g

Nur... Der "Voll Horst" hat eine Datei vergessen hochzuladen und genau deshalb geht es nicht >_<
Schaun, vllt. finde ich es ja woanders nochmal, mit allen Dateien. *gg

Autor:  MySql [ Di 08 Apr, 2008 13:24 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Moin,

soweit habe ich das mit dem Linksklick hinbekommen.

$this->bbcode_second_pass_code('', '<a href='Javascript:void(0);' onclick='show_menu($row[login]);return false;'>$row[name]</a>')

So damit der DIV-Container nicht irgendwo im Fenster angezeigt wird, habe ich Ihn mittels

$this->bbcode_second_pass_code('', 'document.getElementById('show_menu').style.top = window.event.y;
document.getElementById('show_menu').style.left = window.event.x;')

positioniert!

Funkt im FF aber nicht!

Dann hab ich ein bisschen gegoogle't.. Naja da kam dann das raus:

$this->bbcode_second_pass_code('', 'if (window.event.y&window.event.x) {
document.getElementById('show_menu').style.top = window.event.y;
document.getElementById('show_menu').style.left = window.event.x;
} else {
document.getElementById('show_menu').style.top = element.layerY;
document.getElementById('show_menu').style.left = element.layerX;
}')

... Naja... FF mag Window.Event und Element halt nicht *g. Weißt jemand von Euch, wie man des schreiben muss, das im FF die Position übergeben wird???

Danke schonmal für die antworten.

My.

Autor:  Harthas [ Di 08 Apr, 2008 15:15 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Da solltest du auf event.pageX | event.pageY zugreifen. http://developer.mozilla.org/en/docs/DOM:event.pageX


Hier noch ein weiteres Anwendungsbeispiel.

Autor:  MySql [ Di 08 Apr, 2008 18:10 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Das hatte ich auch alles schon , die Fehlerkonsole vom FF spuckt dort immer folgendes aus: XXXX ha no properties.

Autor:  Harthas [ Di 08 Apr, 2008 18:45 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Dann wendest du es falsch an.
Denn diese ToolTips funktionieren beispielsweise einwandfrei. Also kann auch der JavaScript-Befehl nicht falsch sein.

Autor:  MySql [ Di 08 Apr, 2008 19:12 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Man kann ein ToolTip aber nicht mit einem OnClick-Event vergleichen. Habe es mir dennoch ein zweites mal angesehen & die Funktion neu geschrieben. Jetzt wird es im FF gar nicht mehr angezeigt. Traue mich gar nicht im IE nachzuschauen. Aber im Opera geht es weiterhin *g

$this->bbcode_second_pass_code('', 'function show_menu (acctid,e)
{
x = (document.all) ? window.event.x : e.pageX;
y = (document.all) ? window.event.y : e.pageY;
object = document.getElementById('show_menu');
if (object)
{
if (object.style.display == 'none')
{
object.style.display = 'block';
object.style.top = y;
object.style.left = x;
}
}
}')

& ja, ich habe es auch mit + 'px'; versucht, fehlanzeige.

Autor:  Harthas [ Di 08 Apr, 2008 19:17 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Man kann es zwar nicht vergleichen, aber pageX und pageY trotzdem bei beidem die selbe.

Was übergibst du für einen Wert für e?

Autor:  Jenutan [ Di 08 Apr, 2008 20:14 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Moment. Kleine Zwischenfrage:

Meines Wissens nach ist "object" ein reservierter Begriff in Javascript.
Als "Übervater" aller Objekte, also noch "über" "document"? :?

PS:
Anscheinend wohl doch...
http://de.selfhtml.org/javascript/sprac ... rviert.htm

Autor:  MySql [ Di 08 Apr, 2008 21:48 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Nein 'object' bzw. 'Object' kann in Javascript als freie Variable benutzt werden.
Habe es nun hinbekommen.
Und als onclick Events, kannst du die Beispiele eher schlecht als recht benutzten Harthas. Weil da sehr viel fehlt. CaptureEvent etc.. Hatte es nun hinbekommen. Habe in meiner Funktion nur " + 'px'; " vergessen gehabt. Ist ja leider ein muss in FF. Geht nun aber im Internet Explorer in Mozilla Firefox und in Opera. *g

Autor:  Harthas [ Di 08 Apr, 2008 22:48 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

pageX und pageY werden für die Positionierung eines Elementes gebraucht. Zumindest hier.

Und das muss sowohl bei einem ToolTip, als auch bei einem Rechtsklickmenü gemacht werden. Daher kann man sowas durchaus vergleichen.

Autor:  MySql [ Mi 09 Apr, 2008 13:42 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

Nungut, pageX / pageY ist wohl war.
Naja das geht ja nun.

So dann habe ich da jetzt noch ein klitze kleines Problem. *fg
Wenn ich in diesem besagtem Menü auf "Mail schreiben" klicke, öffnet sich die mail.php doch sagt mir, das der Name falsch ist.

$this->bbcode_second_pass_code('', 'var mail = \"".popup('mail.php?op=write&to='.rawurlencode('+login+').'').";return false;\";')

So in etwas benutze ich das auch für die Bio, da wiederum geht es reinbungslos. Und ich kann daran einfach keinen fehler sehen. o.O

Edit: So hab ich's in der Funktion page_footer stehen:

(Syntax kann ein wenig verschoben sein, wisst ja mein Editor. *g)

$this->bbcode_second_pass_code('', '<script type='text/javascript'>
var IE = document.all ? true : false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getPosition;
var posX = 0;
var posY = 0;
function getPosition(e) {
if (IE) {
posX = event.clientX + document.body.scrollLeft;
posY = event.clientY + document.body.scrollTop;
}
else {
posX = e.pageX + 'px';
posY = e.pageY + 'px';
}
if (posX < 0) { posX = 0; }
if (posY < 0) { posY = 0; }
return true;
}
function hide_menu () {
document.getElementById('showmenu').style.display = 'none';
}
function show_menu (login) {
var show_this = document.getElementById('showmenu');
var user_rank = ".$session['user']['superuser'].";
var user_mail = \"".popup('mail.php?op=write&to='.rawurlencode(' + login + ').'').";return false;\";
if (show_this) {
if (show_this.style.display == 'none') {
show_this.style.display = 'block';
if (user_rank == 0) {
var write_menu = 'Kommt noch!';
}
if (user_rank == 1) {
var write_menu = 'Kommt noch!';
}
if (user_rank == 2) {
var write_menu = 'Kommt noch!';
}
if (user_rank == 3) {
var write_menu = '<table bgcolor=\"#000\" border=\"0\" cellpadding=\"0\" cellspacing=\"2\"><tr><td width=\"100%\" height=\"20\" align=\"center\"><font color=\"#fff\">' + login + '</font></td></tr><tr><td bgcolor=\"#EDEEEE\" width=\"100%\"><div align=\"left\" class=\"menu\" width=\"100%\"><img src=\"images/bio.png\"><a class=\"menu\" href=\"bio.php?char=' + login + '\"> Biographie</a></div><hr /><div align=\"left\" class=\"menu\" width=\"100%\"><img src=\"images/mail.GIF\"><a class=\"menu\" href=\"mail.php?op=write&to=' + login + '\" target=\"_blank\" onclick=\"' + user_mail + '\"> Mail schreiben</a></div></td></tr></table>';
}
show_this.innerHTML = write_menu;
}
}
show_this.style.top = posX;
show_this.style.top = posY;
}
</script>')

Autor:  MySql [ Mi 16 Apr, 2008 14:09 ]
Betreff des Beitrags:  Re: Opera - Zu nichts zu gebrauchen.

So übermitteln tut er es nun auch für die Mail's...
Nur fand ich den Code nicht so schön & er hat es nicht in jedem Template so ausgegeben, wie er es eig. sollte. Daher habe ich die Funktion nochmal komplett neu geschrieben... Nunja... IE habe ich eh abgehackt , aber trotzdem mal mit rein gepackt, fals ich das eine Template doch nochmal für IE zum laufen bekomme. Sooo.... in Opera wird es alles richtig ausgeben, nur der FF macht jetzt faxen.

1. Hintergrund wird transparent angezeigt und 2tens gibt er die <td>'s & <tr>'s falsch aus, Opera hingegen gibt es richtig aus.

Hier mal der Code: (Ihr kennt ja meinen hübschen Editor, kann sein, das der Syntax bissel verschoben ist)

$this->bbcode_second_pass_code('', ' function show_menu (login)
{
if (!login)
{
login = 'Error: Unknown Login!';
} else {
var menuObject = document.getElementById('showmenu');
var userRank = ".$session['user']['superuser'].";
menuObject.style.display = 'block';
menuObject.innerHTML = '';
if (IE)
{
menuObject.innerHTML += '<div id="menu" style="display: block; position: absolute;">';
}
if (NS)
{
menuObject.innerHTML += '<layer display="block" name="menu" bgcolor="black">';
}
var barText = 'Kontextmenü';
var tempBar = '';
for (i = 0;i < barText.length;i++)
{
tempBar += barText.substring(i, i+1)+'<BR>';
}
menuObject.innerHTML += '<table border="0" cellpadding="0" cellspacing="1" width="'+(menuWidth+16+2)+'" bgcolor="black">';
menuObject.innerHTML += '<tr>';
menuObject.innerHTML += '<td bgcolor="#666666" width="'+menuWidth+'">';
menuObject.innerHTML += '&nbsp;';
menuObject.innerHTML += '<font face="Verdana" size="2" color="white">';
menuObject.innerHTML += '<b>';
menuObject.innerHTML += 'Spieler Navigation!';
menuObject.innerHTML += '</b>';
menuObject.innerHTML += '</font>';
menuObject.innerHTML += '</td>';
menuObject.innerHTML += '<td align="center" rowspan="100" width="16" bgcolor="#333333">';
menuObject.innerHTML += '<p align="center">';
menuObject.innerHTML += '<font face="Verdana" size="2" color="white">';
menuObject.innerHTML += '<b>';
menuObject.innerHTML += tempBar;
menuObject.innerHTML += '</b>';
menuObject.innerHTML += '</font>';
menuObject.innerHTML += '</p>';
menuObject.innerHTML += '</td>';
menuObject.innerHTML += '</tr>';
function addMenuItem (text, link, target, extra)
{
if (!target)
{
target = '_self';
}
menuObject.innerHTML += '<tr>';
menuObject.innerHTML += '<td bgcolor="white" onmouseover="bgcolor=\'#CCCCCC\'" onmouseout="bgcolor=\'white\'">';
menuObject.innerHTML += '<ilayer>';
menuObject.innerHTML += '<layer onmouseover="bgcolor=\'#CCCCCC\'" onmouseout="bgcolor=\'white\'" width="100%">';
menuObject.innerHTML += '<font face="Verdana" size="1">';
menuObject.innerHTML += '&nbsp;';
menuObject.innerHTML += '<a href="Javascrpit:void(0);" target="'+target+'" class="linker" '+extra+'>';
menuObject.innerHTML += text;
menuObject.innerHTML += '</a>';
menuObject.innerHTML += '</font>';
menuObject.innerHTML += '</layer>';
menuObject.innerHTML += '</ilayer>';
menuObject.innerHTML += '</td>';
menuObject.innerHTML += '</tr>';
}
function addMenuHead (text)
{
menuObject.innerHTML += '<tr>';
menuObject.innerHTML += '<td bgcolor="#666666" width="140">';
menuObject.innerHTML += '&nbsp';
menuObject.innerHTML += '<font face="Verdana" size="2" color="white">';
menuObject.innerHTML += '<b>';
menuObject.innerHTML += text;
menuObject.innerHTML += '</b>';
menuObject.innerHTML += '</font>';
menuObject.innerHTML += '</td>';
menuObject.innerHTML += '</tr>';
}
addMenuHead(login);
addMenuItem('Test','Javascript:void(0);','_self','title="no.."');
menuObject.innerHTML += '<tr>';
menuObject.innerHTML += '<td bgcolor="#666666">';
menuObject.innerHTML += '<font size="0" face="Arial">';
menuObject.innerHTML += '&nbsp;';
menuObject.innerHTML += '</font>';
menuObject.innerHTML += '</td>';
menuObject.innerHTML += '</tr>';
menuObject.innerHTML += '</table>';
if (IE)
{
menuObject.innerHTML += '</div>';
}
if (NS)
{
menuObject.innerHTML += '</layer>';
}
menuObject.style.top = tempY;
menuObject.style.left = tempX;
}
}')

Villeicht hat hier ja jemand ne Ahnung von Javascript, fals man das dort JS nennen darf. :D
Help, please.

My.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/