Question

J'ai créé un contrôle personnalisé qui hérite de PageViewerWebPart.

Maintenant, je dois basculer le allowTransparency attribuer à = "true" sur l'iframe rendue pour activer la transparence d'arrière-plan de la page dans IE8+.

J'ai écrit du javascript pour le faire (mais cela ne fonctionne pas correctement) et il n'existe aucune méthode exposée de la classe pour ajouter des attributs à un élément enfant imbriqué.

Le contrôle restitue la hiérarchie de code suivante :

<div>
<table>
    <tr>
        <td valign="top">
            <div WebPartID="00000000-0000-0000-0000-000000000000">
                <iframe title="Page Viewer">
                    <div class="UserGeneric">iframe not supported warning</div>
                </iframe>
            </div>
        </td>
    </tr>
</table>
</div>

Voici donc mon javascript :

function setTransparency() {
var divs = document.getElementsByTagName("div");
var element;
var eClass;
var result;

// Get "marked" div (container for fly out)
for (var i = 0; (element = divs[i]) != null; i++) {
    eClass = element.className;
        if (eClass) {
            if (eClass.indexOf("marked") != -1) {
            result = element;
            break;
        }
    }
}

// Find iframe contained within flyout
var ifr = findDescendantIframe(result);

if (ifr != null) {
    ifr.allowTransparency = "true";
}}

// Recursive find of iframe (kind of) - if no children, no return value
function findDescendantIframe(parent) {
if (parent.hasChildNodes()) {
    for (var i = 0; (child = parent.childNodes[i]) != null; i++) {
        if (child.nodeName == "IFRAME") {
            return child;
        }
        return findDescendantIframe(child);
    }
}}

Javascript n'est peut-être pas la réponse.Existe-t-il un moyen de le faire via C# ou peut-être qu'il y a un problème avec mon js ?

Était-ce utile?

La solution

J'ai résolu cela en supprimant le contrôle et en écrivant mon propre objet à l'aide d'un objet HTMLTextWriter pour rendre le même code HTML, mais avec l'ajout de l'attribut AuthTransparency.

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