내 엔터프라이즈 위키 사이트의 경우 서식있는 텍스트 편집기 안에 사진을 붙여 넣을 수있는 방법이 있습니까?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/115440

문제

엔터프라이즈 위키 템플릿을 사용하여 게시 사이트 모음이 있습니다.현재 텍스트 및 이미지가 포함 된 Word 문서가있는 경우 Word 문서 내용을 모두 복사하면 Content를 서식있는 텍스트 편집기에 붙여 넣은 다음 텍스트 만 복사됩니다 (이미지 없음).

그래서 내 질문은 서식있는 텍스트 편집기 안에 사진을 붙여 넣을 수있는 방법이있는 경우?

감사합니다

도움이 되었습니까?

해결책

이미지를 SharePoint 페이지에 직접 붙여 넣을 수 없으므로 이미지를 HTML로 렌더링 할 수 없으므로 붙여 넣을 수 없습니다.

이미지를 SharePoint에 업로드하여 원하는 페이지 / 장소에 삽입해야합니다.

또는 3 파티 도구를 사용해보십시오.

"Nofollow"> http://www.kwizcom.com/sharepoint.-AD-ONS / SharePoint-Clipboard-Manager / 개요 /

또는

http://www.telerik.com/products/aspnet-ajax/editor.aspx

다른 팁

BaseSers 능력을 편집 가능한 콘텐츠에 붙여 넣을 수있는 브라우저 기능을 활용할 수 있습니다. 그러나 SharePoint의 편집기가 Base64 이미지를 스트립하기 때문에 더티 트릭을 사용하여 이미지 내용을 제거하지 않는 숨겨진 자리 표시 자에게 이미지를 저장 한 다음 페이지로드의 이러한 자리 표시 자에서 이미지를 다시 렌더링 할 수 있습니다.

전문가가 있습니다 (사용하기 쉽고, 사이트에 스크립트를 추가하기 만하면)과 단점 (대형 인라인 이미지, 이미지 붙여 넣기, 이미지 붙여 넣기, 추가 JS 이벤트 등)이 해결책의

이 JavaScript를 사용해보십시오 (마스터 페이지 등)에서 삽입하십시오 (SharePoint 2013 Enterprise Wiki에서 테스트 됨). 그러나 일부 코드 조정이있는 SharePoint 콘텐츠 편집 양식에서는 작동해야합니다. 편집기 Div의 ID를 먼저 설정해야합니다.

    <script type='text/javascript'>

    //set your editable content (editor) client id here:
    var editorClientId = "ctl00_PlaceHolderMain_PageContent_RichHtmlField_displayContent"

    _spBodyOnLoadFunctionNames.push("renderImages()");

    function getImagesByAlt(alt) {
        var allImages = document.getElementsByTagName("img");
        var images = [];
        for (var i = 0, max = allImages.length; i < max; ++i)
            if (allImages[i].alt == alt)
                images.push(allImages[i]);
        return images;
    }
    //if page is in edit mode, delay for other scripts to finish first
    function renderImages() {
        if (window.location.href.indexOf("ControlMode=Edit") > -1)
            setTimeout(function () { renderImagesStart(); }, 1500);
        else
            renderImagesStart();
    }
    //apply data-imgrefs attribute to stripped image contents
    function renderImagesStart() {
        var allSpans = document.getElementsByClassName("imgrefs");
        for (var i = 0, max = allSpans.length; i < max; i++) {
            var img = getImagesByAlt(allSpans[i].title)[0];
            if (img != null)
                img.src = "data:image/gif;base64," + allSpans[i].getAttribute("data-imgref");
        }
    }
    //chrome paste handler
    var IMAGE_MIME_REGEX = /^image\/(p?jpeg|gif|png)$/i;
    var loadImage = function (file) {
        var reader = new FileReader();
        reader.onload = function (e) {
            var img = document.createElement('img');
            img.src = e.target.result;

            var range = window.getSelection().getRangeAt(0);
            range.deleteContents();
            range.insertNode(img);
        };
        reader.readAsDataURL(file);
    };
    document.onpaste = function (e) {
        var items = e.clipboardData.items;
        for (var i = 0; i < items.length; i++) {
            if (IMAGE_MIME_REGEX.test(items[i].type)) {
                loadImage(items[i].getAsFile());
                return;
            }
        }
    }
    //if page is in edit mode apply onblur (leave editor) event to hide images base64 content to spans
    //class name, data- and alt attributes are used because sharepoint doesn't strip them
    if (window.location.href.indexOf("ControlMode=Edit") > -1)
        document.getElementById(editorClientId).onblur = function () {
            var editor = document.getElementById(editorClientId);
            var childNodes = editor.childNodes;
            //remove spans
            for (var i = childNodes.length - 1; i >= 0; i--) {
                var childNode = childNodes[i];
                if (childNode.className == 'imgrefs')
                    childNode.parentNode.removeChild(childNode);
            }
            var imgs = editor.getElementsByTagName("img");
            var id = 0;
            //for each base64 image: hide its content to span data-imgref attribute and append span to editor
            for (var i = 0, max = imgs.length; i < max; i++) {
                var img = imgs[i];
                if (img.src.indexOf("data:image") > -1) {
                    id += 1;
                    img.alt = id & 0xffff;
                    img.alt = 'img' + img.alt;
                    var src = img.src.replace('data:image/gif;base64,', '').replace('data:image/png;base64,', '').replace('data:image/jpg;base64,', '');
                    var span = document.createElement("span");
                    span.className = "imgrefs";
                    span.title = img.alt;
                    span.setAttribute("data-imgref", src);
                    span.innerText = '';
                    editor.appendChild(span);
                }
            }
        }

</script>
.

또한 SharePoint의 웹 서비스 JavaScript에서 직접 직접 (붙여 넣기 또는 일부 사전 저장 이벤트) 서버의 이미지 파일 이름으로 Base64를 교체합니다.

나는 토론 보드리스트 편집기를 컴퓨터에서 적어도 삽입하고 편집기 도구를 사용하여 텍스트에 내장 된 이미지를 조작 할 수 있다는 것을 알았습니다.그런 다음 정상적인 SharePoint 목록 항목 서식있는 텍스트 필드로 자르고 붙여 넣을 수 있습니다.편집하는 데 사용한 토론 목록 게시물을 저장할 필요조차하지 않아도되면 자르고 붙여 넣은 후에 게시물을 취소하십시오.더욱 정교한 이미지 조작이 필요한 경우 (이미지 회전과 같이) 토론 보드 목록에 이메일을 보낼 수있는 경우 Outlook 전자 메일 편집기를 사용하여 텍스트 및 이미지를 구성하고 해당 토론 보드 목록으로 보낼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top