SharePointCommunity
Die deutschsprachige Community für SharePoint 2016, 2013 und Office 365

Jquery funktioniert nach F5 taste

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 12 Antworten | 2 Followers

Top-25-Beitragsschreiber
487 Beiträge
donSharepoint erstellt in 11 Apr 2017 17:16

Hallo Leute.

Ich habe des öfteren das Problem das meineJavaScripte auf eine SharePoint Seite 

Erst Nach einem Browser refresh funktionieren und nicht beim Link aufruf

Kennt jemand auch das Problem? Die JavaScript habe ich mittels contenteditor

Eingebunden.

 

Danke für jede Hilfe 

 

 

Alle Antworten

Top-10-Beitragsschreiber
Männlich
17.703 Beiträge

Meist ist daran MDS schuld (Websitefeature).

PS: binde Scripte lieber über das Script Editor Webpart ein.

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
487 Beiträge

Hi andi.

 

Was ist MDS genau? Für was steht MDS mein ich.Danke

Top-25-Beitragsschreiber
487 Beiträge

Ok minimal Download. Ich teste das ...danke 

Top-25-Beitragsschreiber
487 Beiträge

Hi Andi.

MDS deaktivieren hat leider nicht geholfen. Der Seiteneffekt ist noch da :( noch weitere Idee was das sein könnte? am JS liegt es 100% da es unter SP 2010 einwandfrei funkioniert. Ich hab das einfach übernommen.

Top-10-Beitragsschreiber
Männlich
17.703 Beiträge

Kann ich von außen nicht sagen. Wie und wo genau sind die Scriptdateien eingebunden und in welcher Reihenfolge? Sind alle Abhängigkeiten bedacht worden? Wie werden Scriptfunktionen aufgerufen, z.B. per $(document).ready()?

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
487 Beiträge

Es geht um einen Image Slider. Auf der Seite ganz unten werden folgende Skripte über einen Inhaltseditor Webpart aufgerufen :

script src="/sites/intranetro/skripte/js/jquery-1.8.2.min.js"></script><script src="/sites/intranetro/skripte/js/slides.min.jquery.js"></script>
<script>
$(function () {
$('#slides').slides({
preload: true,
preloadImage: 'img/loading.gif',
play: 5000,
pause: 2500,
hoverPause: true,
animationStart: function (current) {
$('.caption').animate({
bottom: -35
}, 100);
if (window.console && console.log) {
// example return of current slide number
console.log('animationStart on slide: ', current);
};
},
animationComplete: function (current) {
$('.caption').animate({
bottom: 0
}, 200);
if (window.console && console.log) {
// example return of current slide number
console.log('animationComplete on slide: ', current);
};
},
slidesLoaded: function () {
$('.caption').animate({
bottom: 0
}, 200);
}
});
});
</script>

 

 

 

 

Wie gesagt unter SP 2010 funktionier das ohne Probleme. Nur unter SP 13 hab ich den Effekt das der Slide erst nach der F5 taste läuft und nicht wenn beim ersten aufruf der Seite. Seltsam ! Hoffe du kannst da was erkennen. Danke

Top-25-Beitragsschreiber
Männlich
500 Beiträge

Schau dir mal an, wie ich solche Skripte lade, ggf. kannst du es adaptieren. Es gibt noch eine "verschärfte" Variante, die auch MDS mit abdeckt, die habe ich aber noch nicht dokumentiert.

https://olafd.wordpress.com/2016/08/17/load-script-with-web-relative-url/


Grüße

Olaf

 

Top-25-Beitragsschreiber
487 Beiträge

Hi Olaf. Danke für tipp aber irgendwie hab ichs nicht 100% verstanden..

ich hab das jetzt umgebaut in sowas hier ...ist das deiner Meinung nach korrekt?

<script>
SP.SOD.registerSod('jquery.js', _spPageContextInfo.webServerRelativeUrl + '/sites/intranetro/skripte/js/jquery-1.8.2.min.js');

SP.SOD.registerSod('slides.min.jquery', _spPageContextInfo.webServerRelativeUrl + '/sites/intranetro/skripte/js/slides.min.jquery.js');


SP.SOD.executeFunc('functionLib.js', null,$(function () {
$('#slides').slides({
preload: true,
preloadImage: 'img/loading.gif',
play: 5000,
pause: 2500,
hoverPause: true,
animationStart: function (current) {
$('.caption').animate({
bottom: -35
}, 100);
if (window.console && console.log) {
// example return of current slide number
console.log('animationStart on slide: ', current);
};
},
animationComplete: function (current) {
$('.caption').animate({
bottom: 0
}, 200);
if (window.console && console.log) {
// example return of current slide number
console.log('animationComplete on slide: ', current);
};
},
slidesLoaded: function () {
$('.caption').animate({
bottom: 0
}, 200);
}
});
});
);

</script>

Top-10-Beitragsschreiber
Männlich
17.703 Beiträge

donSharepoint:
$('#slides').slides({

Du greifst hier auf ein HTML-Element mit der id "slides" zu. Wo ist das definiert? Wenn es fest in der Seite ist, muß es auf jeden Fall oberhalb des Script-Editor-Webparts sein. Wenn es dynamisch von einem anderen Script erzeugt wird, muß sichergestellt werden, daß es bereits vorhanden ist.

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
487 Beiträge

#slides kommt aus der CSS Datei und diese ist auf jeden fall oberhalb des JS Aufrufes platziert.

Top-10-Beitragsschreiber
Männlich
17.703 Beiträge

Das hat mit CSS nichts zu tun, sondern greift wie oben beschrieben auf ein HTML-Element mit dieser id zu

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
487 Beiträge

Es gibt keine HTML Datei. Die ID holt er sich aus eine CSS über ein html Form webpart die

Oben drüber eingefügt ist. Glaub auch das es ein codefehler ist...eher typerischer Effekt von

SP 13. Es muss doch aber dafür ne Lösung geben

Seite 1 von 1 (13 Elemente) | RSS