אגב, תוכל להשתמש גם בספריה הזו https://github.com/ookii-dialogs/ookii-dialogs-wpf
אבל כפי שכבר כתבו, זה לא ממש רלוונטי לפרויקטים חדשים..
אגב, תוכל להשתמש גם בספריה הזו https://github.com/ookii-dialogs/ookii-dialogs-wpf
אבל כפי שכבר כתבו, זה לא ממש רלוונטי לפרויקטים חדשים..
@zvinissim כהמשך לדברי @איש-פשוט-מאוד תבדוק את התוכנות Rainmeter או Shutter (השניה נראית לי יותר) אחד מהם צריך לדעת להציג אתרים בשומר מסך
@sholom ניסית לדמות סמארטפון בכלי המפתחים בדפדפן?
@A0533057932 אפשר גם פשוט להתקין עם nvm, אבל אולי כדאי באמת לשדרג הכל..
@Whenever זה לא שירות אנונימי, אבל אם לא תגדיר אז לא ישלחו...
בדקתי כעת אצלי, ולא תמיד יש קבלה, וגם בפעם אחת שכן קיבלתי קבלה, כתוב פשוט kofi של XXX שזה השם של הדף...
@אף-אחד-3
אולי זה יתאים, https://ko-fi.com/
זה אמנם פחות בקטע של תשלומים, אבל זה מאפשר לשלם באשראי/פייפאל (בדולר) ואין עמלות עד כמה שידוע לי,
אתה תמיד יכול לרשום את הפייפאל על שם אחד השכנים,
או אולי דרך נדרים פלוס/קהילות
@loly-pop האם הורדתם את גרסת הIntelliJ IDEA Ultimate או את IntelliJ IDEA Community Edition?
אתם צריכים להוריד את מה שנמצא בקטע השני, (הכהה) שכתוב עליו "גרסת הקהילה"
@צדיק-תמים ראיתי, שלחתי לו הודעה היום בבוקר, והשארתי כעת גם issue,
מצורף התוכנה המדוברת,
ZerachExplorer_setop_1.3.0.exe (גיט)
https://github.com/abaye123/ZerachExplorer
מבוסס על https://github.com/tempous/LiteExplorer
בעתיד בעז"ה יהיה שינוי שם לקובץ והסרת כונן באופן בטוח
@mekev לדעתי אין כללים, אלא כלל אחד מה שהשכל האנושי טוען לך, אם אתה טועה, כנראה שאתה רובוט
אני הייתי שם על הראשון והשלישי 0, השני והרביעי O (שים לב להבדל בצורה).
עדכון: מבדיקה נוספת שעשיתי כעת, זה עובד היטב בכל מחשב מלבד 2 המחשבים שעליהם אני כותב, (יש ביניהם סנכרון כלשהו, כך שזה מובן למה באג מור באחד משפיע גם על השני..), כך שהבעיה על פניו לא קשורה לתחום התכנות..
@dovid ניסיתי כבר לעשות את זה, שמרתי וזה עובד בדפדפן ובVSC היטב,
(אם זה יהיה רלוונטי אוכל לשלוח למי שצריך בפרטי לינק ישיר)
זה מקטע הקוד הרלוונטי
let INACTIVITY_TIMEOUT;
let INACTIVITY_TIMEOUT_LOGOUT;
let INACTIVITY_TIMEOUT_SHOW_BANNER_LOGIN;
let INACTIVITY_TIMER_LOGOUT;
let SLIDE_SHOW_TIMEOUT;
let IMAGE_DISPLAYED = false;
// zmani
let IS_SABBATH = false;
function resetAdDisplay(elementId) {
console.log('resetAdDisplay. IMAGE_DISPLAYED: ' + IMAGE_DISPLAYED);
clearTimeout(INACTIVITY_TIMEOUT);
clearTimeout(SLIDE_SHOW_TIMEOUT);
if (elementId !== 'bthLogoutBanner') {
//hideBannerConnectionUser();
}
INACTIVITY_TIMEOUT = setTimeout(function () {
if (!IMAGE_DISPLAYED && !IS_SABBATH) {
console.log('displayAds: start');
displayAds();
IMAGE_DISPLAYED = true;
//logout();
}
}, 40000);
}
let currentImageIndex = 0;
const images = [
'resources/v322.jpg',
'resources/ad.jpg',
];
function displayAds() {
let adsContainer = document.createElement('div');
adsContainer.id = 'ads-div';
adsContainer.style.position = 'fixed';
adsContainer.style.top = '0';
adsContainer.style.left = '0';
adsContainer.style.width = '100%';
adsContainer.style.height = '100%';
adsContainer.style.zIndex = '1900';
adsContainer.style.display = 'flex';
adsContainer.style.flexDirection = 'column';
adsContainer.style.alignItems = 'center';
adsContainer.style.justifyContent = 'center';
let adsContent = document.createElement('div');
adsContent.id = 'ads-content';
adsContent.style.position = 'fixed';
adsContent.style.top = '0';
adsContent.style.left = '0';
adsContent.style.right = '0';
adsContent.style.width = '100%';
adsContent.style.height = '100%';
adsContent.style.maxWidth = '690px';
adsContent.style.margin = 'auto';
adsContent.style.zIndex = '1900';
adsContent.style.display = 'flex';
adsContent.style.flexDirection = 'column';
adsContent.style.alignItems = 'center';
adsContent.style.justifyContent = 'center';
let currentImage = document.createElement('img');
currentImage.src = images[currentImageIndex];
currentImage.style.width = '100%';
currentImage.style.height = '100%';
currentImage.addEventListener('click', hideAds);
let prevButton = document.createElement('button');
prevButton.textContent = '❮';
prevButton.onclick = displayPrevImage;
let nextButton = document.createElement('button');
nextButton.textContent = '❯';
nextButton.onclick = displayNextImage;
prevButton.style.position = 'absolute';
prevButton.style.top = '50%';
prevButton.style.width = '50px';
prevButton.style.height = '50px';
prevButton.style.transform = 'translateY(-50%)';
prevButton.style.right = '18px';
prevButton.style.backgroundColor = 'rgba(255, 255, 255, 0.5)';
prevButton.style.border = 'none';
prevButton.style.borderRadius = '50%';
prevButton.style.color = 'rgba(0, 0, 0, 0.8)';
prevButton.style.fontSize = '28px';
prevButton.style.cursor = 'pointer';
nextButton.style.position = 'absolute';
nextButton.style.top = '50%';
nextButton.style.width = '50px';
nextButton.style.height = '50px';
nextButton.style.transform = 'translateY(-50%)';
nextButton.style.left = '10px';
nextButton.style.backgroundColor = 'rgba(255, 255, 255, 0.5)';
nextButton.style.border = 'none';
nextButton.style.borderRadius = '50%';
nextButton.style.color = 'rgba(0, 0, 0, 0.8)';
nextButton.style.fontSize = '28px';
nextButton.style.cursor = 'pointer';
adsContent.appendChild(currentImage);
adsContent.appendChild(prevButton);
adsContent.appendChild(nextButton);
adsContainer.appendChild(adsContent);
document.body.appendChild(adsContainer);
console.log('displayFullScreenImage');
SLIDE_SHOW_TIMEOUT = setInterval(displayNextImage, 22000);
}
function displayNextImage() {
currentImageIndex = (currentImageIndex + 1) % images.length;
updateImage();
console.log('displayNextImage');
}
function displayPrevImage() {
currentImageIndex = (currentImageIndex - 1 + images.length) % images.length;
updateImage();
console.log('displayPrevImage');
}
function updateImage() {
let currentImage = document.querySelector('#ads-div #ads-content img');
currentImage.src = images[currentImageIndex];
clearInterval(SLIDE_SHOW_TIMEOUT);
SLIDE_SHOW_TIMEOUT = setInterval(displayNextImage, 22000);
}
function hideAds() {
console.log('hideFullScreenImage');
const adsContainer = document.getElementById('ads-div');
if (adsContainer) {
adsContainer.remove();
IMAGE_DISPLAYED = false;
resetAdDisplay('elementId');
}
}
document.addEventListener('mousedown', function (event) {
resetAdDisplay(event.target.id);
});
document.addEventListener('keypress', function (event) {
resetAdDisplay(event.target.id);
});
document.addEventListener('touchstart', function (event) {
resetAdDisplay(event.target.id);
});
resetAdDisplay('elementId');
יש לי סקריפט js שיוצר אלמנט div על כל המסך שמציג תמונות מתחלפות עם כפתורי קדימה/אחורה, האלמנט הלז נוצר לאחר כ40 שניות שלא בוצעה לחיצה במסך, ובVSC עם live server זה פועל מצויין, וכן (אותו קוד בדיוק, גירסה ישנה יותר של האתר עצמו, ללא שינויים שמשפיעים) במקום אחר בשרת.
אבל כשאני מרים את הקוד משרת express חדש, הפונקציה רצה כרגיל, כולל ההדפסות לקונסול, והאלמנטים נוצרים כרגיל, התמונות נמשכות מהשרת ומתחלפות (רישום בקונסול), אבל הכל, ללא שעל המסך ניכר משהו מלבד העובדה שקליקים לא עובדים בגלל שכבת העל של הdiv ש"מסתירה" (בשקוף, כי התמונה לא מוצגת) את שאר התוכן,
למישהו יש רעיון?
אני משתמש בקוד הבא כדי לייצא למשתמש את תוכן טבלה בדף למסמך csv, אבל תווים עבריים מוצגים באקסל כג'יבריש, ניסיתי לקודד כANSI (או Windows-1255), אבל זה עדיין יורד כUTF-8 ומוצג כג'יבריש
פתרונים? הפונקציה צריכה לרוץ בצד הלקוח, ועדיף ללא ספריות וכו'.
function exportToCSV() {
let csvContent = "data:text/csv;charset=ANSI,";
const rows = document.querySelectorAll('#table-report-sales tr');
rows.forEach(row => {
const rowData = [];
row.querySelectorAll('th, td').forEach(cell => {
rowData.push(`"${cell.textContent}"`);
});
csvContent += rowData.join(',') + '\n';
});
//const encodedUri = encodeURI(csvContent);
const encodedUri = encodeURI(`data:text/csv;charset=ANSI,${csvContent}`);
const link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "sales_report.csv");
document.body.appendChild(link);
link.click();
}
@mekev העברה לתיבת אימייל אחרת? כי אני אוכל כנראה לכתוב לך קוד קטן לגוגל סקריפט שמעביר מיילים מכתובות/תווית מסוימת, לכתובת אחרת, כהודעה הודעה, ומכניס מספר רנדומלי (או שעה למשל) בנושא כך שזה לא יקובץ ביחד..
@mekev אני כעת לא מצליח למצוא את זה בהגדרות הניתוב, עשיתי משהו בסגנון הזה אצלי בעבר, אבל אני כעת לא מוצא היכן זה היה..
@יעקב-מ-פינס תוכל גם לנתק בעצמך מהרשת ולהחזיר כדי לראות שזה אכן עובד..
אם אתה יודע איך מציצים בקונסול, תבדוק אם יש שם כעת שורה כזו:
זה אומר שהסקריפט אכן נטען לאתר, ושאין בעיה בהגדרה של הTampermonkey
@mekev על הצד הקלוש שאולי אתם משתמשים בגוגל וורקספייס עסקי, אז אפשרי להגדיר בניתוב אימייל שלכתובות מסוימות יתווסף משהו לנושא, אם רלוונטי אבדוק בדיוק כיצד לעשות את זה..
@יעקב-מ-פינס כעת הצלחתי, וזה עובד אצלי היטב (מקודם הTampermonkey פשוט היה מושבת..),
// ==UserScript==
// @name refresh kcm
// @namespace http://tampermonkey.net/
// @version 2024-05-15
// @description try to take over the world!
// @author You
// @match https://kcm.fm/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function() {
console.log('test...');
window.addEventListener('online', () => {
console.log('is online - refreshing...');
location.reload(true);
});
})();
תנסה להזריק באמצעות תוספים כמו Tampermonkey משהו כזה, אני לא מביא סקריפט מוכן לTampermonkey כי אני לא ממש בקי בזה..
window.addEventListener('online', () => {
location.reload(true);
});
באופן אישי לי זה לא תמיד עובד במחשב (הקריאה לאירוע בעת ההתחברות מחדש, לא הריענון), אבל בטאבלט אנדרואיד זה עובד לי מעולה.