ארכיון קטגוריה: jQuery ו- SharePoint

עצה מהירה: הוספת jQuery דפי פרסום של איזוב

כאשר שיפור מוס publising דפי משתמש jQuery, אני מכה את החשק הבאים:

שגיאת שרת ב- ' /’ יישום.


שגיאת מנתח

תיאור: אירעה שגיאה במהלך ניתוח המבנה של משאב הנדרש כדי לשרת בקשה זו. אנא עיין בפרטי השגיאה הפרישה הספציפיים הבאים ושנה בהתאם לבצע את קובץ המקור שלך.

הודעת שגיאת פורש: רק פקדי תוכן מותרים ישירות בדף תוכן המכיל פקדי תוכן.

שגיאת מקור:

 
Line 10: 
Line 11: 
Line 12: <script 
Line 13:     type="text/javascript" 
Line 14:     src="/jQuery/jquery-1.4.min.js"> 

קובץ המקור: /_catalogs/masterpage/KCC_FacultyMember.aspx    קו: 12


פרטי הגירסה: Microsoft.NET Framework גירסה:2.0.50727.4927; ASP.NET גירסה:2.0.50727.4927

זה היה קל מספיק לתקן (h/t כדי העמית שלי, Ethirajulu אודאי).  ודא הקוד jQuery חי בתוך "PlaceHolderAdditionalPageHead" כפי שמוצג:

<asp:תוכן ContentPlaceholderID = "PlaceHolderAdditionalPageHead" runat = "שרת">

<קובץ script

    סוג = "טקסט/javascript"

    src="/jQuery/jquery-1.4.min.js">

</קובץ script>

<סקריפט סוג = "טקסט/javascript">

  $(המסמך).מוכן(פונקציה() {

   // החומר מבריק jQuery נכנס כאן.

   });

</קובץ script>

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

בשבח jQuery משופרת חיפוש--בעת-הקלדה (מאת יאן Tielens)

אני עובד על דמו BPOS (בקרוב יהיה זמין ב- Microsoft לאתר) רציתי להוסיף יותר תעוזה. . ידעתי על של יאן Tielen מאמצי במשך די הרבה זמן ואני חשבתי שזה יהיה טכניקה מעולה כדי להוסיף הדמו, אז עשיתי. אתה יכול לקרוא על זה כאן: http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx. זה כל כך פשוט לשימוש זה צריכה להיות פשע (ואולי הוא איפשהו).

אוסיף רק שתי נקודות שהוא כבר יצר / כתבה על:

  1. זה עושה, למעשה, עבודה ב- BPOS (SharePoint online) סביבה.
  2. כדי לגרום לזה לעבוד ללא הקידומת ההודעה קופץ מעצבן את ההפניה אל הספרייה jquery ב- https במקום http, כמו ב-:
<סקריפט סוג ="טקסט/javascript" src ="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></קובץ script>

יאן מצביע כי אולי כדאי שתעברי של הספריה עצמה לאתר שלך. מרגישה קצת עצלן היום, I decided to blog about it instead 🙂

</קצה>

. זה עוד פוסט ב שלי סדרת מתמשך כיצד להשתמש jQuery עם SharePoint.
אם ברצונך ללמוד עוד אודות jQuery, אני ממליץ בחום: jQuery בפעולה על ידי דוב Bibeault יהודה כץ.

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תגיות טכנורטי:

אבטחת תצוגות של ספריית SharePoint רשימה/תיעוד נראה (מעין) האפשר עם jQuery

. זה עוד פוסט ב שלי סדרת מתמשך כיצד להשתמש jQuery עם SharePoint.
אם ברצונך ללמוד עוד אודות jQuery, אני ממליץ בחום: jQuery בפעולה על ידי דוב Bibeault יהודה כץ.

אחד הדברים הראשונים חשבתי, לאחר שהתחלתי לשחק עם jQuery, היה אם. נוכל להשתמש בזה כדי לאבטח תצוגה של SharePoint. התשובה היא "לא" (או לפחות, אני לא יכול להגיד שזה אפשרי). עם זאת, זה בהחלט אפשרי לעשות את זה קשה לאנשים לראות תצוגה מסוימת.

התחלתי עם הסביבה בארגז החול שלי עובדים על זה. כתבתי על הסביבה.: מהיר וקל: ליצור שלך jQuery ארגז חול עבור SharePoint.

"להבטיח" נוף, בצע את השלבים הבאים:

  1. יצירת תצוגה שברצונך לאבטח. אני עשיתי את זה וכינה אותו "View מאובטח".

    . זה מה שזה נראה כאשר היא לא "מאובטחת":

    image

  2. להוסיף web part של עורך תוכן לדף של התצוגה באמצעות החוכמה המתוארת במאמר ארגז חול (כלומר. להוסיף "הגירסאות = משותף&ToolPaneView = 2 "לכתובת ה-URL).
  3. להבין את _spUserId של SharePoint על-ידי ביצוע השלבים הבאים מטורף, תאמין או לא:
    1. להיכנס לתוך סביבת SharePoint שלך.
    2. בשדה הכתובת של דפדפן האינטרנט, סוג: "javascript:התראה(_spUserId").
    3. להקליט את התוצאה (. זה "13" במקרה שלי).

      image

  4. להוסיף את ה-javascript הבאה שלך CEWP בתצוגת code:

    <סקריפט סוג ="טקסט/javascript"
        src =".. /.. /jQuery Library/jquery-1.3.2.min.js">
    </קובץ script>
    
    <סקריפט סוג ="טקסט/javascript">
      $(פונקציה() {
    
        התראה(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = 20View % מאובטחת]');
    
        אם ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * = 20View % מאובטחת]').האב().האב().האב().html("<צבע רקע tr = אדום><td>אין מבט בשבילך!</td></. tr>");
      });
    
    </קובץ script>
    

כללתי את ההתראה(_spUserId) קו, כדי להדגים כיצד זה לא באמת "הבטחת" נוף, אבל פשוט עושה את זה יותר קשה לראות. נוסף על זה בעוד רגע.

בעיקרון, jQuery מחפש iFrame בדף שיש לו תכונה המכילה "מאובטחת % 20View" בהערך שלו. ברגע שהוא מוצא את זה, נוכל לבדוק אם המשתמש הנוכחי הוא "13". אם זה, נעלה DOM <. TR> תג (מה שהבנתי על-ידי הצגת המקור לבין לעקוב אחריו) ולאחר מכן החלפת התג TR עם ההודעה שלי. אני באמת לא יודע. כמה חזק זה (אני חשדן מאד, למעשה), אבל זה עבד בארגז חול שלי. אם אמצא דרך טובה יותר, I'll שאכתוב על זה. זו התוצאה:

image

לחץ על לחצן אישור, הנתונים מוחלפים מסר אדום גדול:

image

כפי שאתה יכול להגיד, הדרך יש ליישם פתרון זה "אבטחה" היא לאפשר ה-web part להבהיר את עצמה. לאחר שיסיים, להחליף את התוכן שלה עם "אין התפיסה שלי בשבילך!"הודעה.

למרות העובדה כי זה לא באמת "מאובטחת" "נוף, . זה שעשוי להיות שימושי עם קצת עבודה חכם, בסופו של דבר ייתכן לאבטחה במובן רשמית יותר. הבעיה הבסיסית היא כי הלקוח הוא מקבל את כל הנתונים ולאחר מכן, רק אחרי שהיא מקבלת את הנתונים, זה פותח את זה. אם הלקוח מקבל את הנתונים, משתמש חכם יכול למנוע את jQuery הפעלת בכלל ולראות מה אתה רוצה לראות.

ישנם חסרונות אחרים. גישה זו "אבטחה" מבוסס על _spUserId. היינו רוצים מאוד בטוחה בהתבסס על מודל האבטחה מלא של SharePoint, או לפחות על ידי שם המשתמש. זה הופך בהדרגה קשה יותר, אבל אני רואה כמה דברים טובים שנכתבו בנושא זה, אז אני מקווה שיש תשובה טובה לבעיה הזאת.

רשימת התצוגות עצמם צריכים. להיות מעוטרים, אם זה אפשרי. לא ניסיתי להבין את זה. אני מניח שזה אפשרי, . אבל לא באמת פותר את בעיית האבטחה הבסיסית כי מישהו יכול עדיין רק להקליד כתובת ה-URL של התצוגה שהם רוצים (אם הם ידעו את זה). עם זאת, זמירה הגיוני. זאת אחת התכונות השימושיות טוב וזה עוזר כדי לערפל את הדברים. אם משתמש קצה לא יודע שקיים האירוע תצוגה, . הם בטח לא ינסו להשתמש בו. לפעמים, זה מספיק טוב.

עם קצת מזל, יהיו לי יותר מה לכתוב על הנושא הזה לאורך זמן.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תגיות טכנורטי: ,,

del.icio.us תגיות: ,,

מהיר וקל: דרך טובה יותר jQuery השתמש כדי להסתיר שדה טקסט בטופס SharePoint

. זה עוד פוסט ב שלי סדרת מתמשך כיצד להשתמש jQuery עם SharePoint.
אם ברצונך ללמוד עוד אודות jQuery, אני ממליץ בחום: jQuery בפעולה על ידי דוב Bibeault יהודה כץ.

בעבר, כתבתי על אופן השימוש jQuery כדי לאתר ולהסתיר שדה טקסט בטופס. לא אהבתי הגישה (אני היה שרשור הורים – זה פשוט לא הסתיימה בימים אלו, לפחות במשפחות של איכות).

כאשר התחלתי לחשוב על זה, . ידעתי שעליי למצוא <. TR> אשר באפשרותו להפעיל למסתור() שיטה. המאמץ מוקדם שלי למצוא את הנכון <. TR> היה משהו כזה:

$("tr:יש(קלט[כותרת = להסתיר אותי!])');

הבעיה עם זה היא כי זה ימצא כל <. TR> תג שהיה האב כדי שכל מערכת יחסים הסתר אותי! שדה, גם אם תסתיר אותי! הוא מקונן רמות רבות עמוק <. TR>הוא. מתברר כי בטופס ארגז החול שלי, מוצא את הביטוי הזה 9 שונים TR של מי צריך להחביא אותי! בתור ילד, איפשהו בעץ DOM שלה. הבנתי יכול לצעוד חזרה אל העץ למעלה מן השדה עצמו, . אז זה איך הגעתי לרעה ההורים, . אבל זה לא נראה לי.

. נתתי קצת מחשבה זה, אחד הדברים שקראתי בסופו של דבר הגיוני: הלא יזיק() שיטת לקצץ החוצה <. TR>אני לא רוצה בערכת עטופה שלי. זה הוביל אותי לזה:

$("tr:יש(קלט[כותרת = להסתיר אותי!])').. לא("tr:יש(. tr)').הסתר();

הראשונה מוצא כל <. TR> תגי להם הסתר אותי! שדה בכל מקום בהיררכיה משלהם. זה אז רצועות אף <. TR> זה גם יהיה לנו ילד <. TR>. זה משאיר אותנו עם סינגל <. TR> זה:

1) אין לו <. TR> רשומות הצאצא

2) יש השדה כילד.

אנחנו ניתן להחיל למסתור() הגדר שיטה וכתוצאה מכך וסיימנו.

. אני עדיין קצת לחוצה לגבי זה, אבל לא מתוחה כמו שרשור הורים.

אני לא יודע אם זה עבודה מומלצת או לא. אולי יש דרך יותר מתאים לזיהוי רק <. TR> כי אכפת לנו בטופס SharePoint. אם אתה יודע, בבקשה לפרסם תגובה.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תגיות טכנורטי: ,

מהיר וקל: להשתמש jQuery כדי להסתיר שדה טקסט בטופס SharePoint

. זה עוד פוסט ב שלי סדרת מתמשך כיצד להשתמש jQuery עם SharePoint.
אם ברצונך ללמוד עוד אודות jQuery, אני ממליץ בחום: jQuery בפעולה על ידי דוב Bibeault יהודה כץ.

עדכון (כבר!): חשבתי על דרך טובה יותר כדי לאתר <. TR> תג אני רוצה להסתיר, כתבתי על זה כאן. אתה עדיין יכול למצוא המאמר מעניין בכל מקרה אז אני leavnig את זה.

אני רוצה להסתיר שדה טקסט, "הסתר את לי!"כפי שמוצג:

image

JQuery הבאים עושה את העבודה בשבילי:

<סקריפט סוג ="טקסט/javascript">

  $(פונקציה() {


    $(' קלט[כותרת = להסתיר אותי!]').האב().האב().האב().הסתר();

  });

</קובץ script>

הקוד הוא אומר, "חפש אותי כל קלט שדות אשר כותרתו = להסתיר אותי!. לאחר מכן, לקבל את האב ולאחר מכן אב ו * האב הבא * (אוף!) והעלה למסתור() שיטת על הדבר הזה, או כל דבר..

הבנתי את מבנה האב הזה על-ידי הצגת ה-HTML של הטופס שיצרה SharePoint כמוצג:

<. TR>
    <TD ללא גלישה= האמיתי"" יישור אנכי= "העליון" רוחב= "190px" מחלקה= "ms-formlabel">
        <H3 מחלקה= "ms-standardheader">
            <nobr>תסתיר אותי!</nobr>
        </H3>
    </TD>

    <TD יישור אנכי= "העליון" מחלקה= "ms-formbody" רוחב= "400px">
        <!-- FieldName = "תסתיר אותי!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <טווח הפקודה dir= "none">
            <קלט
                שם= "ctl00 m$ $g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                סוג= "טקסט"
                maxlength= "255"
                מזהה= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                כותרת= "תסתיר אותי!"
                מחלקה= "ms-ארוך" />
                <br>
        </טווח>


    </TD>
</. TR>

תמונה זו מראה את אותו הדבר, . אבל המסומנים עם ההורים:

image

האב הראשון (1) הוא תג span. האב של תוחלת (2) הוא תג TD ונגיע לבסוף אל המציאות אב אני רוצה להסתיר (3) זה התג TR עצמה.

זוהי גישה די נוראי. אני חושב כי זה מאוד תלויים במבנה מאוד ספציפי של טופס זה. כאשר SharePoint 2010 יוצא, מבנה כל זה יכול לשנות ולשבור גישה זו. מה אני באמת רוצה לעשות הוא מלאכה בורר jQuery זה בכיוון של "מצא לי כל המסל (תגיות TR היחידה) יש איפשהו ב רכיבי צאצא שלהם שדות קלט אשר כותרתו = להסתיר אותי!”. ואני מתחיל מלמטה למעלה. בהנחה אני לפתור את זה, בפוסט מעודכן "קלה ומהירה ' פוסט.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

del.icio.us תגיות: ,

תגיות טכנורטי: ,

מהיר וקל: ליצור שלך jQuery ארגז חול עבור SharePoint

. זה עוד פוסט ב שלי סדרת מתמשך כיצד להשתמש jQuery עם SharePoint.
אם ברצונך ללמוד עוד אודות jQuery, אני ממליץ בחום: jQuery בפעולה על ידי דוב Bibeault יהודה כץ.

תחילת העבודה עם jQuery ב- SharePoint הוא קל למדי (לי). (יש לי שאלות קשות על "התנהגות טובה" הגישה של פריסת הדברים האלה ייצור, אבל זה ליום אחר). התחלתי לשחק עם הטכנולוגיה הזו ולשם כך, יצרתי סביבה ארגז חול לשימוש. אם אתם מחפשים להתחיל לעבוד עם jQuery, אתה עלול למצוא גישה זו שימושית.

1. ליצור אתר ריק

ליצור אתר ריק איפשהו באתר ולקרוא את זה משהו חכם כמו "jQuery ארגז חול".

2. הורד jQuery

אתה יכול להוריד את ספריית javascript jQuery מכאן: http://docs.jquery.com/Downloading_jQuery

שמור את זה לשולחן העבודה שלך.

אני משתמשת הגירסה "minified".

3. יצירת ספריית מסמכים של SharePoint

באתר ארגז החול שלך, יצירת ספריית מסמכים.

4. להעלות את jQuery ספריית SharePoint

בספרייה דוק שיצרת זה עתה ולהעלות את הספרייה jQuery.

5. ליצור רשימת SharePoint מותאמות אישית

התחלתי עם רשימה מותאמת אישית כי אני רוצה באפס מעשה עם הטפסים הסטנדרטיים של SharePoint. באפשרותך גם ליצור עמוד בספריית הדפים או דפי web part וכנראה הרבה מקומות אחרים.

להוסיף כמה עמודות הרשימה המותאמת אישית כך שיש לך משהו כדי להפעיל jQuery נגד. מטרות הראשונית שלי הייתה:

  1. להסתיר שדה.
  2. להקצות ערך שדה.

עם המטרה במוח, הוספתי שני שדות טקסט. לאורך זמן, אני לשחק עם קישורים, תמונות, בדיקות, ועוד.

6. לשנות את דף ה-Web newform. Aspx ולהוסיף Web Part של עורך תוכן

. זה שחור קטן magic-ish , כי זהו רעיון חדש לי. תחילה למדתי על זה מ פול גרנייה, SharePoint jQuery סופרסטאר, באתר הפרוייקט שלו CodePlex: http://spff.codeplex.com/.

בצע שלבים אלה כדי להוסיף CEWP לאותו דף המציג newform. Aspx עבור כל רשימה מותאמת אישית:

  1. הגישה את הרשימה המותאמת אישית, לחץ על חדש.
  2. צרף הבאות לכתובת ה-URL: הגירסאות = משותפים&ToolPaneView = 2

זה יהפוך את טופס הזנת הנתונים וניל משעמם ממשהו כזה:

image

את זה:

image

הוספת ה-web part של עורך תוכן לדף.

7. לכתוב שלך הראשון jQuery קוד

תפתח את CEWP בתצוגת code ולהוסיף הבאות:

image

הנה הקוד עצמו אם ברצונך לבצע העתקה/הדבקה:

<סקריפט סוג ="טקסט/javascript"
    src =".. /.. /jQuery Library/jquery-1.3.2.min.js">
</קובץ script>

<סקריפט סוג ="טקסט/javascript">
  $(פונקציה() {

    $('#resultsID').html('יש' + $('a').גודל() + 'תגיות תגיות בעמוד זה.');

  });
</קובץ script>

תוצאה:
<div id ='resultsID'></div>
/תוצאה

שים לב כי הראשון <קובץ script> תג הוא הפניה הספרייה jQuery בפועל. ככל הנראה, הדברים האלה משתנים במשך הזמן, אז אתה רוצה לוודא שאתה) להשתמש את השם הנכון ו- b) תכוון אל ספריית המסמכים של SharePoint הנכון.

להתענג על התהילה

אם עשית את זה כראוי, תוכל לראות תוצאה הדומה להודעה הבאה:

image

התקפלות

זו לא הדרך היחידה להתחיל, . אבל מהיר, קל, מבודד מסביבת SharePoint הקיים שלך.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תגיות טכנורטי: ,

del.icio.us תגיות: ,

מהיר וקל: השתמש jQuery כדי להגדיר A הטקסט הערך של שדה בטופס SharePoint

התחלתי לשחק עם jQuery אתמול. רציתי לעשות את זה במשך זמן רב, מאז פול גרנייה התחלתי לכתוב סדרת שלו על jQuery עבור משתמשי קצה ב הנערץ www.endusersharepoint.com אתר אינטרנט. כאשר אני משתמש בו, אני מקווה להוסיף שסדרה של "מהיר, קל" הודעות כמו זה. פוסט זה מתאר כיצד להגדיר הערך של שדה טקסט מוכרות שאתה יכול.

בתרחיש הזה, יצרתי רשימה מותאמת אישית מראה הטופס "חדש" של מי כמוצג:

image

. זה הטופס החדש עבור רשימה מותאמת אישית עם העמודה כותרת ברירת המחדל ועמודות רשימה שני (עמודות אתר לא; אני לא חושב שזה צריך משנה).

המטרה היא להקצות ערך שרירותי לשדה, "DefaultMeFieldNoSpaces" (אתה יכול להגיד שאני קצת פחדן עם הדבר "רווחים", . אבל אני לתבל את זה בסוף מאמר זה).

את הקטע הזה של jQuery עבד בשבילי:

<סקריפט סוג ="טקסט/javascript">

  $(פונקציה() {

    $(' קלט[כותרת = DefaultMeFieldNoSpaces]').הפו(
        {ערך: ' אתה במבוך מפותלת של קטעים, כולכם אותו דבר. "});

  });

</קובץ script>

כפי שהבנתי את הקטע הזה של jQuery אומר, "מוצא לי תג קלט אשר כותרתו = DefaultMeFieldNoSpaces. לאחר מכן, הגדר כל הערכים שלהם המשפט המפורסם של משחק המחשב הישן."

מאז יהיו רק שדה אחד על גבי טופס עם כותרת שווה ל- "DefaultMeFieldNoSpaces" אנחנו מובטח של הקצאת ערך לשדה זה, לא אחר.

מה לגבי שדה ששמו כולל רווחים? זה כמעט אותו הדבר:

<סקריפט סוג ="טקסט/javascript">

  $(פונקציה() {
     $(' קלט[כותרת = להקצות שדה עם שטח]').הפו(
        {ערך: ' אתה במבוך מפותלת של קטעים, כולכם אותו דבר. "});

  });

</קובץ script>

אני חושב שזו גישה בטוחה למדי, כלומר, נוכל למצוא את השדה שאנחנו רוצים רק את השדה אנחנו רוצים. אם תסתכל על ה-HTML SharePoint נותן לנו, . זה די מבולגן:

<קלט
שם= "ctl00 m$ $g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
סוג= "טקסט"
maxlength= "255"
מזהה= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
כותרת= "DefaultMeFieldNoSpaces"
מחלקה= "ms-ארוך"
/>

"title" בולטת כמו תכונה מוכרת וייחודית בתקווה שיעזור לנו לזהות את העמודה הספציפי שאליו נרצה להקצות ערך שרירותי שלנו.

זהו קונספט למעין. הגדרת שדה באופן שרירותי כזה לא הולכים לנצח בשום פרסים. עם זאת, אם אנחנו רוצים לעשות דברים ברמת הטופס יותר מעניין (שכל אחד תמיד רוצה לעשות, בטח, מיד אחרי שנסיים. שטיפת כלים), כמו לשנות את הערך של "שדה b" באופן אוטומטי בהתבסס על הערך של "שדה", אנחנו (אני) צריך ללמוד הדברים כאלה.

לדעתי הסיכוי הטוב ביותר כדי לקבל ערך אמיתי שימושי כאן היא באמצעות הכותרת, לפחות עבור שדות טקסט. יכול להיות טוב יותר, גישה יותר אמין. אם אני אמצא את זה, אני אעדכן את הפוסט הזה. אם אתה מכיר דרך טובה יותר, אנא השאירו תגובה.</קצה>

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תגיות טכנורטי: ,