J'ai le code ci-dessous dans lequel je reçois l'étrange erreur.
results_html = '<html><body><table align="center" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="9"><b>Employee Salary Register </b></td></tr><tr><td colspan="9"></td></tr>' + results_html + '</table></body></html>';
Fonctionne dans la console de chrome si vous changez
résultats_html code> à une chaîne aléatoire sans guillemets, commentrésultats_html code>?Qu'est-ce que rapport_excel exactement?
@Mrlister: C'est l'ID de la table que j'ai et que je l'utilise dans le code ci-dessus pour exporter ces données en format XLS.
Pour être clair, le code ci-dessus fonctionne bien dans le serveur local, mais au client, il ne fonctionne pas et que l'erreur étrange apparaît dans la console.files sont exactement la même chose que ...
On dirait que cela dépend du contenu 'Report_Excel'. BTW si vous utilisez jQuery, vous devez modifier
.innerhtml code> à.html () code>, et si repor_excel est l'identifiant de certains éléments que d'ajouter un numéro à l'avant de celui-ci$ ('# reporter_excel') code>.Quelques suggestions: (1) Essayez de modifier l'extension de fichier du fichier exporté pour vous assurer que le client n'a pas de problème spécifiquement avec le format .xls. (2) Modifiez vos premiers résultats_html en résultats_html1; Mettez ensuite à jour la ligne suivante pour être: Résultats_html = ' registre des salaires des employés b> td> tr> td> tr> '+ résultats_html1 +' table> corps> html> ';
2
2 commentaires
3
0 commentaires
2
0 commentaires
1
0 commentaires
0
0 commentaires
1
0 commentaires
Vous devez inclure l'erreur de la console que vous obtenez dans votre question. Cela nous aiderait à vous aider.
Qu'est-ce que ce retour? $ ('repor_excel'). innerhtml;
$ (id) code> etnouvel élément code> Suggérez l'utilisation de prototypejs i>, alors j'ai pris la liberté d'ajouter cette étiquette. Dans prototypejs,$ code> est un alias pourdocument.getelementByID code>. Voir aussi: API.Prototypejs.org@Pavan: En 4 mois, vous n'avez plus d'observation que vous avez obtenu une erreur de syntaxe dans une ligne de code qui semble être syntaxiquement correcte. Le moins que vous auriez pu faire est d'écrire un test unitaire autour de cette ligne de code à prouve b> que l'erreur se produit dans cette ligne de code particulière. J'attends avec impatience votre Jsfiddle.
@Ruud je viens de modifier ma question!
@Pavan: toujours floue, alors j'ai plus de questions, désolé. Avez-vous essayé d'autres navigateurs Web (c.-à-d. / Chrome / Safari)? Je suppose que le bouton export i> appels
export_to_excel code>. Ces lignes étranges sous les boutons sont-elles déjà là-bas lorsque la page se charge ou apparaissent-elles une fois que vous avez cliqué sur le bouton? J'espère que j'ai bien compris: une erreur se produit uniquement sur l'environnement de production, pas sur votre environnement local. Y a-t-il une différence dans la version de prototypejs? Veuillez ajouterconsole.log (résultats_html); code> juste au-dessus de la ligne donnant l'erreur et montre-nous le résultat (voir console); à la fois lorsque l'erreur, et quand ok?Ça fonctionne bien dans chrome.Oe la fonction export_to_excel fait référence au bouton d'exportation.Les lignes sont déjà existantes lorsque la page chargée.Et maintenant, malheureusement, le serveur du côté client est modifié et que l'erreur n'apparaît pas. Maintenant, j'ai juste besoin de savoir pourquoi cette erreur est apparue auparavant.
@Pavan: Si personne (y compris vous-même) ne peut reproduire le problème, alors il n'y aura jamais une réponse.
6 Réponses :
votes
juste une suggestion: changez votre ligne de: xxx pré>
à p> xxx pré>
J'ai remplacé " strong> avec ' strong> et vicefersa .. Cela supprimerait probablement votre erreur.L'empêche. P>
Remarque: puisque dans le commentaire, vous avez mentionné que $ (' repor_excel ') strong> Est-ce que vous êtes en train de tabler la bonne voie JQuery d'accéder à l'identifiant est $ ("# repor_excel") strong> .. Utilisez # fort> p> p> P> P> P> P>
Merci pour votre réponse, mais son javascript n'est pas jQuery
@Pavan La raison pour laquelle il se réfère à JQuery est que la syntaxe $ ('') est utilisée dans JQuery, ainsi que des mootools. Les deux sont des bibliothèques JavaScript (donc des fonctions JavaScript réutilisables). Il semble donc que vous utilisiez une sorte de bibliothèque afin de faire la syntaxe $ (''). Sinon, que pensez-vous que le $ ('') devrait faire, si vous voulez que vous souhaitez que vous souhaitiez
document.getelementbyid ('rapport_excel'). Innerhtml code>.votes
J'ai implémenté votre code ci-dessous et ça fonctionne bien Définissez d'abord votre identifiant / classe d'abord dans cette ligne
résultats_html = $ ('repor_excel'). Innerhtml; code> xxx pré> p> votes
Le problème est avec les citations de votre contenu de résultats_html.
Il semble que vous utilisiez jQuery, (1) si vous êtes: p> xxx pré>
2.Si vous ne sont pas: échappez aux citations simples de votre contenu. P>
results_html = $('report_excel').innerHTML; results_html = '<html><body><table align="center" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="9"><b>Employee Salary Register </b></td></tr><tr><td colspan="9"></td></tr>' + results_html.replace(/'/g, "\\'"); + '</table></body></html>';votes
juste faire ceci:
<script type="text/javascript"> function export_to_excel() { var results_html = $('report_excel').html() ? $('report_excel').html() : ""; results_html = '<html><body><table align="center" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="9"><b>Employee Salary Register </b></td></tr><tr><td colspan="9"></td></tr>' + results_html + '</table></body></html>'; var input = new Element('input', { 'type': 'hidden', 'name': 'results[html]', 'value': results_html }); var form = new Element('form', { 'method': 'post', 'name': 'Employee Salary Register', 'action': "html_to_excel" }); form.append(input); document.body.appendChild(form); form.submit(); } </script>votes
La solution consiste à placer le code JavaScript dans un fichier distinct (comme ExportExcel.js), puis inclure ce fichier de votre vue. Ne pas utiliser la balise! P>
votes
Je sais que je suis en retard à la fête, mais j'avais un problème similaire et je laisserai mon correctif ici pour quelqu'un d'autre qui arrive à cela en googling l'erreur. J'essayais d'inclure une baisse locale à CDN hébergé angular angular: xxx pré>
qui lance la même erreur littérale à chaîne intermine. Il s'est avéré que la balise de script final dans la chaîne d'écriture de document trébuchait sur l'analyseur. Il suffit d'échapper à la barre oblique dans la balise de fermeture citée. P> xxx pré>
Astuce de chapeau: HTML5 Boiserie Projet. p> p>
Articles qui pourrait vous intéresser :
Impossible d'importer le module "@ angular / material"Interaction profonde avec break and catch
Utilisation de node.js comment renommer tous les fichiers d'un dossier
Google Chrome Uncaught (promis) DOMException lors de la lecture AUDIO