2016-07-21 8 views
1

(* I den anfänglichen Thread * aufzuräumen)einbetten ein Uservoice-Widget in einem Add-In in Excel für Windows

ich den Uservoice-Widget zu einem Excel-Add-in hinzufügen möge. Ich habe den folgenden Beispiel-Code gemacht:

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script> 
    <link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.0/fabric.min.css"> 
    <link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.0/fabric.components.min.css"> 
    </head> 
    <body> 
    <div id="contact_us">Contact us</div> 
    </body> 
    <script> 
    // Include the UserVoice JavaScript SDK (only needed once on a page) 
    UserVoice=window.UserVoice||[];(function(){var uv=document.createElement('script');uv.type='text/javascript';uv.async=true;uv.src='//widget.uservoice.com/KIXLyRfZDu6MdnaaVtnlSw.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(uv,s)})(); 

    UserVoice.push(['addTrigger', '#contact_us', {}]); 
    </script> 
    </body> 
</html> 

Es funktioniert gut unter JSBin und Excel Online auf Contact us klicken zeigt das Meldungsfenster. Jedoch, unter Excel 2016 for Windows, nach einigen Sekunden des Ladens (wie erwartet), klicken Sie auf Contact us öffnet ein solches Fenster nicht.

enter image description here

Ich weiß nicht, ob es etwas Besonderes, wir müssen zur Einrichtung in Home.html oder die Manifest-Datei des Add-in, oder die Einstellung von Excel für Windows. Ich versuche auch, die Position zu ändern, wo das Fenster erscheinen soll (aber immer noch nicht funktioniert) ... Könnte jemand helfen?

Bearbeiten 1 Ich teste den Code von Michael Saunders, es funktioniert unter Excel Online, funktioniert aber immer noch nicht in Excel für Windows. Das Folgende ist ein Screenshot. Beachten Sie, dass nach dem Klicken auf Contact us das Dreiecksymbol (in rot) angezeigt wurde (in meinem ersten Beispiel hat es die gleichen Phänomene. Und wenn wir nur auf den leeren Bereich des Aufgabenbereichs klicken, hat es auch die gleichen Phänomene.)

Vielleicht ist die Box bereits angezeigt, aber nicht in einem Bereich des Aufgabenbereichs, den wir sehen können?

enter image description here

Antwort

0

Hier ist eine komplette Arbeits Seite:

<!DOCTYPE html> 
<html> 
<head> 
    <title>UserVoice test</title> 
    <script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/Office.js" type="text/javascript"></script> 
</head> 
<body> 
    <div id="contact_us">Contact us</div> 
</body> 
<script> 
    UserVoice=window.UserVoice||[];(function(){var uv=document.createElement('script');uv.type='text/javascript';uv.async=true;uv.src='//widget.uservoice.com/KIXLyRfZDu6MdnaaVtnlSw.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(uv,s)})(); 
    UserVoice.push(['set', { 
     width:'300px', 
     post_suggestion_enabled:true 
    }]); 
    UserVoice.push(['identify', {}]); 
    UserVoice.push(['addTrigger', '#contact_us', { mode: 'contact',menu_enabled:true, }]); 
</script> 
</html> 

Einige Dinge, die ich zählen geändert:

  • Changed die #contact_us Element ein div anstelle einer Verbindung zu sein.
  • entfernt Ihren persönlichen Tag
  • Added die optionalen Parameter in dem addTrigger Aufruf
  • hinzugefügt identify und set Aussagen

Stellen Sie außerdem sicher ist Ihre Umgebung in einem guten Zustand:

  • Löschen Sie Ihren Browser-Cache, um sicherzustellen, dass beim Debugging kein alter Code vorhanden ist: Öffnen Sie den Internet Explorer (nicht Edge), und wählen Sie Sicherheit> Browser-Historie löschen y> Wählen Sie alle Boxen> Löschen> Schließen Sie alle IE-Fenster und alle Office-Fenster.
  • der Host-Code online
+0

Es funktioniert nicht ... Tatsächlich ist mir klar, dass das Fenster auf 'href =" mailto: [email protected] "' zurückzuführen ist. Wenn Sie auf "Contact us" (Kontakt) klicken, wird eine E-Mail gesendet ... Was soll ich als Wert für "href" angeben? Ich habe fast alle Möglichkeiten [hier] (https://developer.uservoice.com/docs/widgets/methods/) versucht, aber keiner von ihnen funktioniert in einem Add-in ... – SoftTimur

+0

Ah, änderte meine Antwort seit ich didn bemerke nicht, dass du einen Link benutzt hast. Das ist das Problem. –

+0

Ich lege genau [diesen Code] (http://jsbin.com/cojabawupu/2/edit?html,output) zu meiner Home.html. Der JSBin funktioniert, während dieser Code in einem Add-In nicht funktioniert: Klicken auf 'Contact us' hat keine Reaktion ... – SoftTimur

1

In Bezug auf die Ladegeschwindigkeit, können Sie die Uservoice dynamisch laden, das heißt, mit jQuery.getScript(...)?

Für # 2, was hast du erwartet?

+0

Für # 2, ich erwarte, dass es direkt auf das Widget öffnet ... – SoftTimur

+0

Für getString bitte mein Update sehen ... ich nicht das 'url' Argument verwendet haben, ist es richtig (der Test ist in Ordnung)? – SoftTimur