-
@שאול-נ-י זה מה שעשיתי , מה שלא הבנתי זה איך אני "אומר" לטריגר להריץ את הקישור
או אולי קצת יותר ברור, גם בהפעלה ידנית שאני עושה כאן
או רכיבי מאקרו זה לא מפעיל ביכלל את הקישוראיך אני גורם שאיזה שהיא פעולה תפעיל את
הקישור
, אח"כ שזה יעבוד כל X זמן הסתדרתי
@chv אמר בהרצת סקריפט מ Googek sheets שיפעיל קישור:
(זו שנקראת כשלוחצים על ״הקישור״)
איך קוראים לפונקציה הזו, איך יוצרים אותה ?
-
@פשוט-אבל-תותח יש בסטאק סקריפט שפותח איזה כתובת שתרצה. הנה:
/** * Open a URL in a new tab. */ function openUrl( url ){ var html = HtmlService.createHtmlOutput('<html><script>' +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";' +'if(document.createEvent){' +' var event=document.createEvent("MouseEvents");' +' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' +' event.initEvent("click",true,true); a.dispatchEvent(event);' +'}else{ a.click() }' +'close();' +'</script>' // Offer URL as clickable link in case above code fails. +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' +'</html>') .setWidth( 90 ).setHeight( 1 ); SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." ); }
פשוט תקרא לפונקציה openURL עם הכתובת שאתה רוצה.
-
@odeddvir אם אפשר הסבר יותר ברור, היו כאן כמה רעיונות ואני התבלבלתי
אני פותח סקריפט חדש ולקרוא לו איך ?
אני נותן דוגמא של כתובת וכמובן שהתוכן משתנה לפי מה שכתוב בגיליון (במשל בתא K4) יהיה במקום המילים מילים להקראה שבדוגמא כאןhttps://www.call2all.co.il/ym/api/UploadTextFile?token=079XXXXX:****&what=ivr2:/M1000.tts&contents=מילים להקראה
-
@פשוט-אבל-תותח פתח סקריפט חדש עם איזה שם שתרצה, ותדביק בו את הקוד.
אם הכתובת נמצאת בתא K4, תוסיף בסוף קריאה לפונקציה כך:openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue())
את הסקריפט הזה תריץ כל פרק זמן.
-
פוסט זה נמחק!
-
@odeddvir כתבתי ככה וזה מראהשהפעולה הושלמה, בתכל'ס זה לא שינה כלום
function myFunction() { /** * Open a URL in a new tab. */ function openUrl( url ){ var html = HtmlService.createHtmlOutput('<html><script>' +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";' +'if(document.createEvent){' +' var event=document.createEvent("MouseEvents");' +' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' +' event.initEvent("click",true,true); a.dispatchEvent(event);' +'}else{ a.click() }' +'close();' +'</script>' // Offer URL as clickable link in case above code fails. +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' +'</html>') .setWidth( 90 ).setHeight( 1 ); SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." ); openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue()) } }
-
@פשוט-אבל-תותח אם יש לך כמה גליונות, הוא מחפש בראשון, אלא אם כן תציין את שם הגליון:
getRange('MySheet!K4')
-
@פשוט-אבל-תותח תנסה קודם כל לבצע בדיקה פשוטה. האם הקוד הבא עובד, ונפתח חלון של גוגל:
openURL('www.google.com');
עריכה: שמתי לב ששכחת להקיף את כתובת התא בגרשיים (בשורה 23), צריך להיות getRange('K4')
-
-
@פשוט-אבל-תותח ומה אם תציין נתיב מלא, כך:
openURL('http://www.google.com');
-
@פשוט-אבל-תותח בוא נעשה סדר...
את הפונקציה שהבאתי לך אל תשנה. (הוספת את הקריאה לפונקציה בתוך הפונקציה עצמה, וזה גרם לרקורסיה אינסופית).
אחרי הפונקציה תוסיף את השורה שמבצעת קריאה לפונקציה. כך:function openUrl( url ){ // כל הקוד המקורי שלעיל } openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue())
-
function myFunction() { /** * Open a URL in a new tab. */ function openUrl( url ){ var html = HtmlService.createHtmlOutput('<html><script>' +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";' +'if(document.createEvent){' +' var event=document.createEvent("MouseEvents");' +' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' +' event.initEvent("click",true,true); a.dispatchEvent(event);' +'}else{ a.click() }' +'close();' +'</script>' // Offer URL as clickable link in case above code fails. +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' +'</html>') .setWidth( 90 ).setHeight( 1 ); SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." ); } } openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue())
ואז זה מחזיר
ניסיתי גם להוריד את השורה הראשונה ואת הסוגר התחתון (שהעורך מביא אוטמטי)
-
@פשוט-אבל-תותח אם הבנתי נכון (זה מסובך מאוד להבין מה אתה רוצה) כדאי מאוד, שתפתח אשכול חדש - ובו תכתוב הכל מהתחלה, בצורה הכי מפורטת והכי ברורה שאתה יכול.
עדיין לא ברור לי עצמי מה אתה רוצה להשיג בלחיצה על הכפתור - ומה אתה רוצה להשיג בלחיצה אוטומטית על הכפתור (לחיצה שבעצם מבוצעת על ידי הסקריפט)
תתייג אותי ואת מי שאתה חושב לנכון, באשכול חדש.
שאפו ל-@OdedDvir על הדברים שהוא כתב כאן והרצון לעזור -