Aggiungere (sostituire) il collegamento ipertestuale alle immagini in una raccolta di Immagini in Slideshow Web Part

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/60563

Domanda

Sul nostro sito di team abbiamo aggiunto una web part che è una "raccolta di Immagini di Presentazione di" web part.Attualmente, cliccando sulle immagini che scorrono in slideshow indirizza il browser solo per l'immagine URL.Vorrei modificare il punto a qualsiasi altro URL della mia scelta.

Ho provato a forzare una modifica del codice javascript generato dalla presentazione web part utilizzando il mio script della pagina.Guardando la fonte, la raccolta di Immagini utilizza una var che imposta effettivamente il link, si chiama "linkArray":

var pictureArray = ['http://intranet/HomePicture/_w/image1.jpg','http://intranet/HomePicture/_w/image2.jpg'];
var linkArray = ['http://intranet/HomePicture/image1.jpg','http://intranet/HomePicture/image2.jpg'];
var titleArray = ['',''];
var descriptionArray = ['',''];
var heightArray = [268,268];
var widthArray = [383,383];

Con il mio script ho provato a cancellare l'array e inserire il mio link in esso, ma per qualche motivo il link per l'aggiornamento (es.il mio script funziona) dopo la prima immagine cambia.Anche se devo modificare manualmente la prima immagine del tag href script pensa ancora la "prima" dell'immagine è il secondo che la presentazione scorre.C'è un modo per forzare la funzione di sovrascrivere l'esistente javascript immediatamente al caricamento della pagina?

È stato utile?

Soluzione 3

Dopo aver esaurito tutte le altre opzioni nel tentativo di forzare l'immagine della web part della pagina per iniziare a modificare i collegamenti dal primo elemento che carica, ho trovato una soluzione di soluzione per la soluzione per utilizzare semplicemente una funzione di rotazione sul mio array.Dal momento che il comportamento ha offensito le associazioni di immagine-a-ipertestuale da 1 elemento, ruotando l'array che assegnamento ai collegamenti dell'immagine di 1 si adatta bene.

Altri suggerimenti

In che modo la libreria di immagini Slideshow Web Part funziona

Articoli figurano vengono recuperati tramite Spquery da Libreria immagine e i risultati vengono salvati in array interno delle voci ImageInfo

public struct ImageInfo
    {
      public int width;
      public int height;
      public string src;
      public string fullImageSrc;
      public string title;
      public string descrption;
    }  
.

E queste informazioni sono rese sul lato client e memorizzate nei seguenti array:

var pictureArray = [...];
var linkArray = [...];
var titleArray = [...];
var descriptionArray = [...];
var heightArray = [...];
var widthArray = [...];
.

e dopo che il controllo della presentazione è inizializzato sul lato client:

 var slideshowObject = new SlideshowObject(slideshowObjectId, pictureArray, linkArray, titleArray, descriptionArray, heightArray, widthArray, transitionTime, mode);
 ChangePic(slideshowObject);    
.

Come manipolare le immagini per Slideshow

Potrebbe essere ottenuto con il costruttore sovrascritto SlideshowObject, in tal caso è possibile fornire logica aggiuntiva quando viene creata SlideshowObject.

Ad esempio, l'esempio seguente dimostra come escludere le immagini senza titoli da visualizzarli in slideshow:

//Overridden SlideshowObject constructor with method for excluding pictures  
function SlideshowObjectInitializer() {
   SlideshowObject = (function(SlideshowObjectOrig) {

      return function() {

       //Exclude pictures
       if(typeof excludePic != 'undefined') {
          for(i=0,k=0;i<arguments[1].length;i++) {
             var imageInfo = {src: arguments[1][i], fullImageSrc: arguments[2][i], title: arguments[3][i],description: arguments[4][i], height: arguments[5][i], width: arguments[6][i]};
             if(excludePic(imageInfo)) {
                for(j=1;j<7;j++) {
                    arguments[j].splice(i, 1);
                }  
                i--;
             } 
          }
       }
       //Call original SlideshowObject constructor 
       return SlideshowObjectOrig.apply(this, arguments);
     };
  })(SlideshowObject);
}   

//Exclide pictures with no titles
function excludePic(imageInfo) {
    return (imageInfo.title.length == 0);
}

ExecuteOrDelayUntilScriptLoaded(SlideshowObjectInitializer, 'imglib.js');
.


.

Segui il mio blog Post per i dettagli.

Sembra che la prima immagine è già stato eseguito il rendering prima del tuo javascript esegue.Su idea è quella di "manualmente" individuare e modificare il tag href immagine direttamente nel DOM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top