6 votes

SharePoint 2010 - Duplication des entrées du composant Web Part Éditeur de contenu

Je suis en train d'utiliser Javascript à l'intérieur d'une web part d'éditeur de contenu SharePoint 2010 pour insérer un objet Silverlight. J'ai besoin de le faire de cette manière au lieu d'utiliser une Web Part Silverlight car les Web Part Silverlight ne sont pas actuellement activées. Cela est entièrement fait en utilisant Javascript.

Le problème survient lorsque je vais plus tard pour éditer le Javascript à l'intérieur du CEWP - je peux voir le Javascript original demandant la génération de l'objet Silverlight et je peux, c'est la partie étrange, le CEWP a tout le HTML généré de l'objet Silverlight juste là ajouté au script.

Maintenant, lorsque je sauvegarde, je sauvegarde le script pour générer l'objet Silverlight ET le HTML qui avait été précédemment généré, dupliquant ainsi l'objet Silverlight. Si je revisite l'édition, j'aurai maintenant trois objets Silverlight et ainsi de suite.

Vous pouvez voir cela en action par vous-même avec le code d'exemple suivant:

  1. Ajoutez une nouvelle Web Part d'éditeur de contenu sur une page dans SharePoint 2010
  2. Modifiez le code source HTML
  3. Ajoutez le code suivant:

    document.write("Bonjour<br/>");

Enregistrez la web part et c'est fait. Maintenant, continuez simplement à éditer le CEWP. Chaque fois que vous cliquez sur "Modifier la Web Part", "Bonjour" sera ajouté à votre script.

Comment puis-je utiliser Javascript pour insérer des éléments DOM sans que le HTML généré n'apparaisse dans le CEWP?

11voto

Jordan Arron Points 20994

Le problème vient du fait que SharePoint 2010 ne vous permet pas de copier-coller des scripts dans l'éditeur. Au lieu de cela, vous devriez mettre vos scripts dans un fichier txt (oui, vous avez bien lu, un fichier txt) stocké dans SharePoint, puis indiquer au CEWP d'utiliser ce fichier comme source.

Tout d'abord, créez un fichier avec tout votre code (à la fois Javascript et HTML - essentiellement tout ce que vous auriez normalement collé dans l'éditeur de contenu.) Assurez-vous d'encadrer votre Javascript dans la balise </code> et enregistrez le fichier avec une extension .txt comme "scripts.txt".</p> <p>Ensuite, ajoutez un CEWP à votre page et sélectionnez "Modifier la partie web." Dans le volet de l'éditeur de contenu à droite, sous "Lien de contenu", ajoutez l'URL de votre fichier txt et cliquez sur "Appliquer", et le tour est joué.</p> <p>Jetez un œil à l'URL suivante pour une description complète de cette modification dans SharePoint 2010 : <a href="http://sptwentyten.wordpress.com/2010/08/31/insert-javascript-into-a-content-editor-web-part-cewp/" rel="noreferrer">http://sptwentyten.wordpress.com/2010/08/31/insert-javascript-into-a-content-editor-web-part-cewp/</a></p></x-turndown>

0voto

James Love Points 934

Utilisez jQuery - probablement beaucoup plus sûr que document.write qui peut casser le javascript plus loin dans la page.

Ou utilisez le code dans ce lien pour mettre du HTML pur dans le WPQ au lieu de jouer avec JavaScript:

http://karinebosch.wordpress.com/silverlight-meets-sharepoint/walkthrough-2-hosting-silverlight-3-in-a-content-query-web-part/

0voto

Peter Jacoby Points 1710

Une autre option est d'utiliser le Web Part de Formulaire HTML (dans la catégorie Formulaires). Cela peut être utilisé pour se connecter à d'autres Web Parts, mais plus simplement, il peut être utilisé pour modifier directement du JavaScript dans le Web Part. Il semble que les règles pour les Web Parts d'Éditeur de Contenu ne s'appliquent pas aux Web Parts de Formulaire HTML, ce qui permet une plus grande flexibilité.

Plus d'informations de la part de Microsoft se trouvent ici :

http://office.microsoft.com/fr-fr/sharepoint-server-help/use-the-html-form-web-part-to-filter-and-display-data-in-another-web-part-HA101791813.aspx#_Toc274731120

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X