Question

J'essaie de trouver une solution ou une meilleure façon de le faire, j'ai fondamentalement, je dispose de Visio Web Access WebPart dans la page elle-même, en raison de la mise en page de page, il est affiché sous une petite forme, nous avons décidé d'avoir un bouton pour cliquer suret développez-le en mode complet, je conscience que l'utilisation de la visiowebaccess.aspx basée sur le fichier Visio, mais nous ne souhaitons pas que le bouton de la barre d'outils affiche.

Questions: Y a-t-il un querystring pour le visiowebaccess.aspx qui peut être utilisé?Ou existe-t-il de toute façon pour la boîte de dialogue Modal SharePoint pour injecter du JavaScript?

code comme tel:

// Hook into the AJAX Sys.Application.load event.
Sys.Application.add_load(onApplicationLoad)

// Define global variables.
var vwaControl; 
var webPartElementID;
var drawingURL ;
var vwaPage;

// Capture a reference to the current session of the Visio Web Access Web Part.
function onApplicationLoad() {
    try{
            webPartElementID = getVWAWebPartID();
            vwaControl= new Vwa.VwaControl(webPartElementID);
            drawingURL = vwaControl.getDiagramUrl();
            vwaPage = vwaControl.getActivePage();
    }
    catch(err){
        console.log(err);
        $("#btn_visioModal").hide();
    }
}

// Search the SharePoint page to get the WebPartID# for the Visio Web Access Web Part.
function getVWAWebPartID() {

    // Get a NodesList of all the div tags on the page. 
    var divArray = document.getElementsByTagName("div");
    var webPartElementID;

    // Iterate through the NodesList to get the node with the class attribute "VisioWebAccess."
    for (var i = 0; i < divArray.length; i++) {
        var node = divArray[i];

        // Return the first instance of the Visio Web Access Web Part.
        if (node.className == "VisioWebAccess") {
            webPartElementID = node.parentNode.parentNode.id;
            break;
        }
    }
    return webPartElementID;
}
function openInDialog() {
try{
    // Get the URL for the drawing currently displayed in the Visio Web Access Web Part.                 
    drawingURL = vwaControl.getDiagramUrl();

    // Setup option for the modal dialog            
    var options = {url: "http://sharepointportal/_layouts/15/VisioWebAccess/VisioWebAccess.aspx?id="
    +  drawingURL,
    width: 1280,
    height: 768,
    allowMaximize: false,
    showClose: true};

    SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
}
catch(err){
    console.log(err);
}

merci.

Était-ce utile?

La solution

On dirait que je me suis retrouvé une solution: Au lieu d'utiliser la page VisiowebAccess, créez une nouvelle page vierge avec uniquement la partie Web Visio, utilisez le conteneur-fluide si votre site SharePoint a une bootstrap (que la mine a), lorsque vous appelez la passe modale dans l'URL de fichier via QueryString et sur la page modaleInclure ce SCRAT:

function changeUrl(){   
    // Get the URL of the current file being displayed.
    fileURL = GetQueryStringParams('fileURL');
    var currDiagram = vwaControl.getDiagramUrl();
    currDiagram = currDiagram.replace("%20", " ");
    fileURL = decodeURI(fileURL);
    console.log(vwaControl.getDiagramUrl());
    console.log(fileURL);
    // Replace the currently displayed Web Drawing with the other Web Drawing.
    vwaControl.openDiagram(fileURL);
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top