SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Text suchen und ändern

Geprüfte Antwort Dieser Beitrag hat 14 Antworten

Ohne Rang
88 Beiträge
Natt U erstellt 14 Okt. 2010 14:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Liebe Community

Ich möchte den Text "Schweiz" ändern in "Venezuela"per Javascript und Content Editor Webpart.
Das Webpart mit dem Javascript habe ich unter das Webpart mit dem Text "Schweiz" eingefügt.

<script type="text/javascript">

var str="Schweiz";
document.write(str.replace("Venezuela"));

</script>

Es wird mir immer Schweiz, statt Venezuela angezeigt.
Weiss jemand was falsch daran ist?

Besten Dank

Alle Antworten

Ohne Rang
88 Beiträge
Natt U Als Antwort am 14 Okt. 2010 14:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Javascript war unvollständig. Jetzt ist es korrigiert. Allerdings wird mein Text noch immer nicht ersetzt, so dass ich jetzt Schweiz und Venezuela sehe.

<script type="text/javascript">

var str="Schweiz";
document.write(str.replace("Schweiz", "Venezuela"));

</script>

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 14 Okt. 2010 16:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Kann ich nicht nachvollziehen, bei mir steht (mit Copy&Paste von deinem Code) "Venezuela".

Hast du vielleicht von anderen Funktionen einen JavaScript Fehler auf der Seite, der die Ausführung dieses Codes verhindert?

Henning Eiben
busitec.de

Ohne Rang
88 Beiträge
Natt U Als Antwort am 14 Okt. 2010 16:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Bei mir steht auch Venezuela und Schweiz.

Das heisst dass nicht der Text Schweiz geändert wurde, sondern dass Venezuela hinzugefügt wurde.
Ich habe kein javascript auf der Seite.

Ich habe ja das Originalwort Schweiz in einem Inhaltswebpart oberhalb des eingefügten javascripts, das ja jetzt ersetzt werden sollte durch Venezuela. Hast du dies auch so  gemacht?

Was ist da falsch?

Ohne Rang
88 Beiträge
Natt U Als Antwort am 14 Okt. 2010 17:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mein Endziel der Übung ist dann vor allem bei einer von mir erstellten Umfrage mit dem UmfrageWebpart einige Anpassungen über Javascript zu machen.

- Text "An dieser Umfrage teilnehmen " ändern
- Back Button einfügen (falls möglich)
- Aktionen Button entfernen
- Text "Sie müssen einen Wert für dieses erforderliche Feld angeben." ändern

usw...

Du siehst, ich habe noch einiges vor mit dem Javascript

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 14 Okt. 2010 19:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

???

Also wie nun? Du hast auf einer Seite ein Inhalts-Editor-WebPart hinzugefügt und da dann dein JavaScript eingefügt. Dann muss das ganze etwa so aussehen:

Es ist nur Venezuela zu sehen, nicht Schweiz :)

Oder hast du noch ein zweites Inhalts-Editor-WebPart auf der Seite? Steht in dem zweiten WebPart etwa Schweiz? Tja, dann ist doch alles klar, dein JavaScript durchsucht nicht die Seite nach dem Wort Schweiz und ersetzt es durch Venezuela, sondern es wird nur die eine Zeichenfolge (in dem JavaScript "str") ersetzt.

Was du alles noch mit dem JavaScript vor hast, wird so nicht funktionieren. Dazu musst du das DOM der HTML-Seite per JavaScript bearbeiten. Das geht ohne weiteres, ich würde dir für die Bearbeitung allerdings jQuery empfehlen, alles andere ist nur mit Schmerzen zu bewerkstelligen (sofern man einmal hinter jQuery gestiegen ist).

Henning Eiben
busitec.de

Ohne Rang
88 Beiträge
Natt U Als Antwort am 15 Okt. 2010 10:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja ich möchte eine Möglichkeit vorhandene Texte, Elemente zu suchen und ändern zu können. Wie beschrieben möchte ist die Idee das Umfrage Webpart zu ändern.


Danke für den Tipp mit JQuery. Es ist mir allerdings noch nicht klar wie ich etwas suchen und ändern kann.

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 15 Okt. 2010 10:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn du die jQuery-Bib eingebunden hast, könntest du etwa so was machen:

<script language=javascript>
    $(document).ready(function() {
        $("a#diidSurveyResults").text('neuer text!');
        $("div[id$=ListActionsMenu_t]").parent().parent().remove();
    });
</script>

Henning Eiben
busitec.de

Ohne Rang
88 Beiträge
Natt U Als Antwort am 15 Okt. 2010 12:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für den Code. Ich werde es mal so testen!

Ohne Rang
88 Beiträge
Natt U Als Antwort am 15 Okt. 2010 13:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Auch zum Thema Javascript und Inhalt ändern habe ich folgendes herausgefunden und getestet:

Auf der Website http://vspug.com/joed/2008/09/22/Using-Sharepoint-Surveys-for-a-Quiz/ habe ich folgenden Code gefunden mit dem ich erfolgreich eden Abbruch Button einer Sharepoint Umfrage unsichtbar machen konnte. Den code habe ich in der Newform.aspx Seite eingefügt.

<script type="text/javascript">
function hideCancel()
{
    var e = document.getElementsByTagName("input");

    for(var i = 0; i < e.length; i++)
        if (e[i].type == 'button' && e[i].value == 'Abbruch')
            e[i].style.visibility = "hidden";
}
hideCancel();
</script>

 

 

Leider funktioniert dies nur auf der ersten Seite meiner Umfrage. Meine Umfrage hat mehrere Seiten und die Benutzer müssen mit Weiter auf die nächsten Seiten blättern. Bei der ersten Seite ist nun der Abbruch Button nicht sichtbar, aber auf den anderen Seiten ist er wieder da.

Hast du eine Idee wie ich den Button auf jeder Seite verstecken kann?

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 18 Okt. 2010 17:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Natt U"]

Leider funktioniert dies nur auf der ersten Seite meiner Umfrage. Meine Umfrage hat mehrere Seiten und die Benutzer müssen mit Weiter auf die nächsten Seiten blättern. Bei der ersten Seite ist nun der Abbruch Button nicht sichtbar, aber auf den anderen Seiten ist er wieder da.

Hast du eine Idee wie ich den Button auf jeder Seite verstecken kann?

[/quote]

Sind die weiteren Seiten auch alle auf der NewForm.aspx oder wechselst du die ASPX-Seite? Wenn ja, dann musst du den Code auf jeder Seite einbinden.

Henning Eiben
busitec.de

Ohne Rang
88 Beiträge
Natt U Als Antwort am 15 Okt. 2010 13:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Auf welcher Seite (Newsform.aspx oder default.aspx) und an welcher Stelle im Code füge ich <script type="text/javascript" src="jquery.js"></script> in einer SP Seite ein?
Dies muss ja im Head sichtbar sein. Ich kenne mich im html aus, aber nicht mit aspx Code.

Dieselben Fragen für den Code
<script language=javascript>
    $(document).ready(function() {
        $("a#diidSurveyResults").text('neuer text!');
        $("div[id$=ListActionsMenu_t]").parent().parent().remove();
    });
</script>

Gehe ich recht in der Annahme, dass der Code folgendermassen lautet, wenn ich das Wort Schweiz mit dem Wort Afrika austauschen will:

<script language=javascript>
    $(document).ready(function() {
        $("a#diidSurveyResults").Schweiz('Afrika');
        $("div[id$=ListActionsMenu_t]").parent().parent().remove();
    });
</script>

Danke!



Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 18 Okt. 2010 18:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Natt U"]

Auf welcher Seite (Newsform.aspx oder default.aspx) und an welcher Stelle im Code füge ich <script type="text/javascript" src="jquery.js"></script> in einer SP Seite ein?
Dies muss ja im Head sichtbar sein. Ich kenne mich im html aus, aber nicht mit aspx Code.

[/quote]

Das ist nicht zwangsläufig notwendig. Grundsätzlich sollte das Einbinden von JavaScript Code im Head - oder fast noch besser am Ende der Seite - erfolgen. Aber das ist nicht Pflicht. Besonders wenn du JavaScript mit Hilfe von Inhalts-Editor-WebParts einfügst und du z.B. nichts auf dem Server deployen kannst oder die SharePoint-Seite anpassen kannst, dann hast du keine andere Mgölichkeit als den Code in der Mitte der Seite einzufügen. Das funktioniert genauso gut, ist nur nicht unbedingt das 100% empfohlene Design.

[quote user="Natt U"]

Gehe ich recht in der Annahme, dass der Code folgendermassen lautet, wenn ich das Wort Schweiz mit dem Wort Afrika austauschen will:

<script language=javascript>
    $(document).ready(function() {
        $("a#diidSurveyResults").Schweiz('Afrika');
        $("div[id$=ListActionsMenu_t]").parent().parent().remove();
    });
</script>

[/quote]

Nein!

$("a#diidSurveyResults").text('neuer text!');

.text ist eine Funktion, mit der der Text eines HTML-Elements geändert werden kann. Mit der Zeile wird also der Text eines Anchor-Tags mit der ID diidSurveyResults durch "neuer text!" ersetzt. Das von dir genannte funktioniert also nicht - nur falls es ein Plugin mit einer Funktion "Schweiz" geben würde, würde das Code-Fragment funktionieren. :)

 

Henning Eiben
busitec.de

Ohne Rang
88 Beiträge
Natt U Als Antwort am 20 Okt. 2010 11:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Jetzt klappt es. Vielen Dank. Ich kann die Texte die ich will so ersetzen.

Ich habe momentan noch mit den Fehlermeldungen Probleme, die nur erscheinen wenn man ein Feld der Umfrage nicht ausfüllt.
Wenn ich den Text mit meinem Javasccript Code ändere, dann ist er bei jedem Feld neben dem Feldnamen sichtbar, auch wenn das Feld ausgefüllt wurde, was ja nicht korrekt ist. Der Text soll ja nur erscheinen wenn das Feld nciht ausgefüllt ist  und unterhalb des Feldes.

Source Code:

<td valign="top" width="90%" class="ms-formbodysurvey">
    <!-- FieldName="Ort"
    FieldInternalName="Ort"
    FieldType="SPFieldText"
    -->
   <span dir="none">
  <input type="text" class="ms-long" title="Ort" id="ctl00_m_g_cc7c4748_0aff_4ac8_a2c8_52c128ff2840_ctl00_ctl01_ctl04_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" maxlength="255" name="ctl00$m$g_cc7c4748_0aff_4ac8_a2c8_52c128ff2840$ctl00$ctl01$ctl04$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"><br>
 <span class="ms-formvalidation">Sie müssen einen Wert für dieses erforderliche Feld angeben.<br></span></span>
   
    </td>

Mein Code:
<script type="text/javascript" src="../../jquery.js"></script>
<script language=javascript>
    $(document).ready(function() {
        $("span#reqdFldTxt").text('neuer text!');
    });
</script>

Wie kann man das bewerkstelligen?

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 21 Okt. 2010 10:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

mit folgenden JS-Code kannst du Elemente ausblenden:

$("input[title='Ort']~span.ms-formvalidation").hide();

Henning Eiben
busitec.de