2010-11-10 6 views
1

Avoir un vrai casse-tête ici. J'utilise Atalasoft DotImage pour permettre à l'utilisateur d'ajouter des annotations à une image. Lorsque j'ajoute deux annotations du même type contenant du texte portant le même nom, j'obtiens une erreur d'autorisation javascript refusée dans les js compressés d'Atalasoft. L'erreur accède au membre de style d'une règle:Autorisation Javascript refusée erreur lors de l'utilisation Atalasoft DotImage

Dans le débogueur (Visual Studio 2010 .Net 4.0) Je peux accéder à h._rule mais pas h._rule.style

Que javascript serait cause permission refusée lors de l'accès à un membre d'un objet?

Je me demandais si quelqu'un d'autre a rencontré cela. Je vois plusieurs personnes utilisant Atalasoft sur SO et j'ai même vu une réponse de quelqu'un avec Atalasoft. Et oui, je leur parle, mais ça ne fait jamais de mal de le jeter à la foule. Cela se produit uniquement dans IE8, pas FireFox. Merci, Brian

Mises à jour: Oui, en utilisant la version la plus récente: 9.0.2.43666

Par même nom (voir le commentaire ci-dessous) Je veux dire, je créé des annotations par défaut et ils sont nommés afin qu'ils puissent être ajoutés avec javascript plus tard . // crée une annotation par défaut TextData text = new TextData(); text.Name = "DefaultTextAnnotation"; text.Text = "Annotation textuelle par défaut: \ n double-cliquez pour éditer"; //text.Font = new AnnotationFont ("Arial", 12f); text.Font = new AnnotationFont (_strAnnotationFontName, _fltAnnotationFontSize); text.Font.Bold = true; text.FontBrush = nouveau AnnotationBrush (Color.Black); text.Fill = new AnnotationBrush (Couleur.Ivoire); text.Outline = nouveau AnnotationPen (nouveau AnnotationBrush (Color.White), 2); WebAnnotationViewer1.Annotations.DefaultAnnotations.Add (texte); En javascript: CreateAnnotation ('TextData', 'DefaultTextAnnotation');

function CreateAnnotation (type, nom) { SetAnnotationModified (true); WebAnnotationViewer1.DeselectAll(); var ann = WebAnnotationViewer1.CreateAnnotation (type, nom); WebThumbnailViewer1.Update(); }

+0

Lou de Atalasoft ici. Cela semble définitivement familier. Que voulez-vous dire par avoir le même nom? Utilisez vous la dernière version? –

+0

J'ai créé des annotations par défaut et elles sont nommées pour pouvoir être ajoutées plus tard avec javascript. – BrianK

Répondre

1

Il existait un bogue dans une version antérieure qui permettait d'enregistrer des annotations avec les mêmes ID uniques. Cela ne provoque généralement pas de problèmes pour les annotations à l'exception de TextAnnotations, car ils utilisent l'ID unique pour créer une classe CSS pour l'éditeur de texte. CSS n'aime pas avoir deux ou plusieurs classes définies par le même nom, c'est ce qui provoque l'erreur "Permission denied".

Vous pouvez supprimer les identifiants uniques des annotations sans que cela ne provoque de problèmes. J'ai fourni quelques extraits de code ci-dessous qui montrent comment cela peut être fait. Appeler ResetUniques() après avoir chargé les données d'annotation (côté serveur) devrait faire en sorte que tout se passe bien.

-Dave C. de Atalasoft

protected void ResetUniques() 
{ 
    foreach (LayerAnnotation layerAnn in WebAnnotationViewer1.Annotations.Layers) 
    { 
     ResetLayer(layerAnn.Data as LayerData); 
    } 
} 

protected void ResetLayer(LayerData layer) 
{ 
    ResetUniqueID(layer); 
    foreach (AnnotationData data in layer.Items) 
    { 
     LayerData group = data as LayerData; 
     if (group != null) 
     { 
      ResetLayer(data as LayerData); 
     } 
     else 
     { 
      ResetUniqueID(data); 
     } 
    } 
} 

protected void ResetUniqueID(AnnotationData data) 
{ 
    data.SetExtraProperty("_atalaUniqueIndex", null); 
} 
+0

Merci, j'ai aussi obtenu cela du support Atalasoft, bien que sans l'explication de la création de classes css. J'ai toujours un problème - si je ne démarre pas avec des annotations, créer quelques annotations de texte et ensuite faire pivoter, je reçois à nouveau l'erreur de protection. Il semble que mon application crée toujours avec des identifiants non uniques. J'installe le dernier correctif à nouveau. – BrianK

+0

Dave C - Maintenant, je reçois des doublons et des annotations sur le serveur lorsque la page est publiée avec un postback normal ou avec une requête ajax asp.net. Cela se produit avec les versions 9.0.2.43666 et avec les versions 9.0.2.43718. Cela ne s'est pas produit avec des builds avant cela. J'ai soumis cela au support Atalasoft avec un exemple dans le dossier ftp nommé Case00040495 – BrianK

Questions connexes