Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<html>
<head>
<script type="text/javascript">
function observePaste(elem, callback) {
//Entweder die ID oder ein DOM Element als Parameter
if(typeof elem === 'string') {
elem = document.getElementById(elem);
}
var pasted = false;
elem.onpaste = function() {
pasted = true;
};
elem.oninput = function() {
if(pasted) {
pasted = false;
callback.call(elem);
}
};
}
window.onload = function() {
observePaste('text1', function() {
alert(this.value);
});
observePaste(document.getElementById('text2'), function() {
alert(this.value);
});
};
</script>
</head>
<body>
Please modify the contents of the text field.
<input id="text1" type="text" value="Text field 1" />
<input id="text2" type="text" value="Text field 2" />
</body>
</html>
window.onload = function() {
function afterPaste() {
alert(this.value);
}
observePaste('text1', afterPaste);
observePaste(document.getElementById('text2'), afterPaste);
};
var paste = {
observe: function(element, callback) {
var isPasting = false;
element = document.getElementById(element);
element.onpaste = function() {
this.isPasting = true;
};
element.oninput = function(event) {
if(this.isPasting) {
this.isPasting = false;
callback.call(element);
}
};
}
};
var observePaste = function(element, callback) {
isPasting = false;
if(typeof element === 'string') {
element = document.getElementById(element);
}
element.onpaste = function() {
this.isPasting = true;
};
element.oninput = function(event) {
if(this.isPasting) {
this.isPasting = false;
callback.call(element);
}
};
};
var onPaste = function() {
//alert("pasting on " + event.target.id + "!: " + event.target.value);
alert(this.value);
};
window.onload = function() {
paste.observe("text1", onPaste);
paste.observe("text2", onPaste);
//observePaste("text1");
//observePaste("text2");
};
Was noch nicht klappt ist die Übergabe des event-Objekts an den Callback. Muss man hier auf etwas bestimmtes achten?
element.oninput = function(event) {
if(this.isPasting) {
this.isPasting = false;
callback.call(element, event);
}
};
var onPaste = function(evt) {
};
Ok, das musst du mir jetzt aber erklären. Bei mir ging es nicht weil ich bei call lediglich event mit übergab. Also: callback.call(event);
Aber ich habe den callback doch nur mit einem Parameter gekennzeichnet?
function foo(a, b) {
alert(a === arguments[0]);
alert(b === arguments[1]);
alert(arguments[2]);
}
foo('bar', 'baz', 'foobar');