惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - fengzhimei

The template you have chosen is invalid or cannot be found. CSS trick : text-transform Site Definition KickStart Project Transform between Hex and Dec in Javascript - fengzhimei Visual Studio 2005 Web Application Projects Template Overcome limitation of activate ActiveX control in IE "Suggested Web Parts" in SharePoint 2007 Web Part picker page. - fengzhimei Expand querystring in URL with JavaScript Create a AJAX enabled WebPart for SharePoint2007 by using ASP.NET 2.0 client callback feature Code view is missing in SharePoint Designer Beta 2 when you try to edit a WSS v3 site. MOSS2007(Beta) SDK is online. .Net Framework v2.0 built-in tools StringBuilder in Javascript Remove duplicate rows from a table Remove duplicate items from collection Programatically download file from document library. Reset VSS Admin Password Html entity encoder/decoder A nice piece of javascript to simulate Adodb Recordset.
Extend toolbar of HtmlEditor in SharePoint 2007
fengzhimei · 2006-07-05 · via 博客园 - fengzhimei

In SharePoint 2007, there is a handy WYSIWYG editor you can use to format html content stored in MOSS 2007(text, images, tables etc). By default, it provide many features (Showed in below screenshot) to us, like font styles, paragraph styles, tables, reuseable content ect. Besides these OOTB features, we can customize it to add our features as well.

Today, I'm gonna show you how to extend the toolbar. For demonstration, I will add a command button into the toolbar, it will add an <HR> html tag into the editor when users click the button. Okay, here we go.

1. Open up SharePoint designer and open a site, then locate to "_catalogs/masterpage(Master Page Gallery)/Editing Menu(Master Page Gallery)".

Open RTE2ToolbarExtension.xml file in this folder to edit. By default, this file should look like:

<?xml version="1.0" encoding="utf-8" ?>
<RTE2ToolbarExtensions>
</RTE2ToolbarExtensions>


To customize the HtmlEditor, we need to add our declaration, after that, it should look something like:

<?xml version="1.0" encoding="utf-8" ?>
<RTE2ToolbarExtensions>
 
<RTE2ToolbarExtraButton id="CustomButton" src="HtmlEditorBtnEx.js" />
</RTE2ToolbarExtensions>

2. Create a new HtmlEditorBtnEx.js file and place it under C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033 folder. Add below codes in the .js file we just created.

function HRButton_OnClick(strBaseElementID, arguments)
{
    
var docEditor=RTE_GetEditorDocument(strBaseElementID);
     docEditor.execCommand(
"InsertHorizontalRule");
}
function HRButton_OnResetState(strBaseElementID, arguments)
{
    
return true;
}

RTE2_RegisterToolbarButton(

"HR_Button",
        RTE_GetServerRelativeImageUrl(
"horizontalRule.gif"),
       
"",
       
"Insert <HR>",
        HRButton_OnClick,
        HRButton_OnResetState,
       
new Array("p1""p2""p3"));

HRButton_OnClick is the function which will be called when the button is clicked.
HRButton_OnResetState is the function which will be called when a specific element in the editor  is selected, you can image that it's used to change the button enable/disable status.
RTE2_RegisterToolbarButton is the function which used to register our button to the toolbar, it actually comes from HtmlEditor.js. The first parameter is kinda like an ID. The second parameter is used to get button image. we have two options here, if we use RTE_GetServerRelativeImageUrl function, we need to put "horizontalRule.gif" to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033\images folder, else if we use RTE_GetServerRelativeUnlocalizedImageUrl function, we need to put "horizontalRule.gif" to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\images folder. The third parameter indicate that if we display some text beside the button image. The fourth parameter is tooltip. And we can pass some arguments from the last parameter, then we can get these arguments in HRButton_OnClick or HRButton_OnResetState function.

Okay, that's it, just a couple of steps:)