پرش به محتوا

تست: تفاوت میان نسخه‌ها

از دانشنامه کتاب مقدس
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۴: خط ۴:
     <meta charset="UTF-8">
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>کتابخانه پدیا بایبل - مطالعه کتاب‌ها و مقالات مسیحی</title>
     <title>کتابخانه پدیا بایبل - مطالعه کتاب‌ها و مقالات</title>
     <meta name="description" content="کتابخانه جامع پدیا بایبل - مطالعه آنلاین کتاب‌های مقدس، مقالات الهیات مسیحی، تفسیر کتاب مقدس و منابع آموزشی دینی">
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
   
     <style>
     <style>
        :root {
            --primary-color: #2c3e50;
            --secondary-color: #3e6f73;
            --accent-color: #A52A2A;
            --light-color: #f8f5f2;
            --dark-color: #3E2723;
            --border-color: #D2B48C;
            --font-family: 'Times New Roman', serif;
        }
       
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
       
         body {
         body {
             font-family: Tahoma, Arial, sans-serif;
             font-family: Tahoma, Arial, sans-serif;
             background-color: #f6f6f6;
             background-color: #f5f1eb;
            color: var(--dark-color);
            line-height: 1.6;
            padding: 0;
             margin: 0;
             margin: 0;
            padding: 20px;
            color: #333;
            line-height: 1.6;
         }
         }
       
        /* مخفی کردن هدرهای اضافی ویکی */
        body > header:first-child,
        .wiki-header,
        .mw-header,
        #mw-header,
        #header,
        .header {
            display: none !important;
        }
       
         .container {
         .container {
             max-width: 1200px;
             max-width: 1200px;
             margin: 0 auto;
             margin: 0 auto;
            background: white;
             padding: 5px 15px;
             padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
         }
         }
         .header {
       
             background-color: white;
         .app-header {
             color: #3e6f73;
             text-align: center;
             padding: 20px;
             margin-bottom: 20px;
             padding: 15px 20px;
            border-bottom: 2px solid var(--border-color);
            background: linear-gradient(to bottom, #f9f6f2, #f0e6d6);
             border-radius: 8px;
             border-radius: 8px;
             margin-bottom: 20px;
             box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            text-align: center;
            border: 2px solid #3e6f73;
         }
         }
         h1 {
          
             margin: 0;
        .app-header h1 {
             font-size: 28px;
             color: var(--primary-color);
             color: #3e6f73;
             margin-bottom: 8px;
             font-weight: bold;
             font-size: 1.8rem;
             font-weight: 700;
         }
         }
       
         .description {
         .description {
             color: #666;
             color: #666;
             font-size: 16px;
             font-size: 1rem;
             margin-top: 10px;
             margin-top: 5px;
            line-height: 1.6;
         }
         }
         .filter-section {
       
         .selector-container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 15px;
             margin-bottom: 20px;
             margin-bottom: 20px;
            padding: 0;
        }
        .filter-row {
            display: flex;
            gap: 15px;
            margin-bottom: 15px;
            align-items: flex-end;
        }
        .form-group {
            flex: 1;
            margin-bottom: 0;
        }
        label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
            color: #495057;
        }
        select {
            width: 100%;
            padding: 10px;
            border: 1px solid #ced4da;
            border-radius: 4px;
            font-size: 16px;
            box-sizing: border-box;
             background: white;
             background: white;
            padding: 15px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.08);
            border: 1px solid var(--border-color);
         }
         }
          
          
        /* استایل برای select با جستجو */
         .selector-box {
         .custom-select-container {
            position: relative;
            flex: 2;
        }
        .custom-select {
            width: 100%;
            padding: 10px;
            border: 1px solid #ced4da;
            border-radius: 4px;
            font-size: 16px;
             background: white;
             background: white;
             cursor: pointer;
             border-radius: 6px;
            appearance: none;
             padding: 12px;
            -webkit-appearance: none;
             border: 1px solid var(--border-color);
             -moz-appearance: none;
             background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
            background-repeat: no-repeat;
            background-position: left 10px center;
            background-size: 16px;
            padding-left: 35px;
         }
         }
         .custom-select-dropdown {
       
             position: absolute;
         .selector-title {
             top: 100%;
             font-size: 1rem;
             left: 0;
             margin-bottom: 8px;
            right: 0;
             color: var(--primary-color);
            background: white;
             border-bottom: 1px solid var(--border-color);
             border: 1px solid #ced4da;
             padding-bottom: 5px;
            border-radius: 4px;
             text-align: center;
            margin-top: 5px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
             z-index: 1000;
             display: none;
            max-height: 300px;
            overflow: hidden;
         }
         }
         .search-box {
          
            padding: 10px;
         select {
            border-bottom: 1px solid #eee;
            background: #f8f9fa;
        }
         .search-box input {
             width: 100%;
             width: 100%;
             padding: 8px 12px;
             padding: 10px 12px;
             border: 1px solid #ddd;
             border: 1px solid var(--border-color);
             border-radius: 4px;
             border-radius: 4px;
             font-size: 14px;
             background-color: white;
        }
             font-size: 0.95rem;
        .options-container {
             color: var(--dark-color);
             max-height: 250px;
             overflow-y: auto;
        }
        .option-item {
            padding: 10px 12px;
             cursor: pointer;
             cursor: pointer;
             border-bottom: 1px solid #f0f0f0;
             font-family: Tahoma, Arial;
            transition: background-color 0.2s;
         }
         }
         .option-item:hover {
          
             background-color: #e9ecef;
        select:focus {
             outline: none;
            border-color: var(--accent-color);
         }
         }
         .option-item:last-child {
       
             border-bottom: none;
         .library-content {
            background: white;
            border-radius: 8px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            padding: 25px;
            min-height: 500px;
             border: 1px solid var(--border-color);
            margin-bottom: 20px;
         }
         }
         .option-item.selected {
       
             background-color: #3e6f73;
         .content-title {
             color: white;
             text-align: center;
            margin-bottom: 20px;
            color: var(--primary-color);
            font-size: 1.5rem;
            padding-bottom: 10px;
             border-bottom: 2px solid var(--border-color);
         }
         }
          
          
         .content-frame {
         .content-display {
            margin-top: 20px;
            border: 1px solid #dee2e6;
            border-radius: 8px;
            overflow: hidden;
            background: white;
            height: 600px;
        }
        .clean-frame {
             width: 100%;
             width: 100%;
             height: 100%;
             height: 550px;
             border: none;
             border: 1px solid var(--border-color);
            border-radius: 6px;
             background: white;
             background: white;
         }
         }
         .iframe-placeholder {
          
            display: flex;
         .navigation {
            align-items: center;
            justify-content: center;
            height: 100%;
            color: #6c757d;
            font-size: 18px;
            text-align: center;
            padding: 20px;
        }
         .action-buttons {
             display: flex;
             display: flex;
             justify-content: flex-end;
             justify-content: flex-end;
             align-items: center;
             align-items: center;
             padding: 15px;
             margin-top: 25px;
            background-color: #f8f9fa;
             gap: 10px;
             border-top: 1px solid #dee2e6;
         }
         }
       
         .wiki-link {
         .wiki-link {
             color: #3e6f73;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            padding: 12px 20px;
            background-color: var(--secondary-color);
             color: white;
             text-decoration: none;
             text-decoration: none;
            font-weight: bold;
             border-radius: 6px;
            padding: 8px 16px;
            border: 1px solid #3e6f73;
             border-radius: 4px;
             transition: all 0.3s;
             transition: all 0.3s;
            font-size: 1rem;
            box-shadow: 0 2px 4px rgba(0,0,0,0.2);
         }
         }
         .wiki-link:hover {
         .wiki-link:hover {
             background-color: #3e6f73;
             background-color: #2d5257;
             color: white;
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
        }
 
        .instructions {
            text-align: center;
            color: #7f8c8d;
            padding: 40px 20px;
            border: 2px dashed var(--border-color);
            border-radius: 8px;
            margin-top: 20px;
            font-size: 1.1rem;
            background-color: var(--light-color);
        }
 
        /* استایل برای حالت انتخاب نشده */
        .placeholder {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100%;
             color: #7f8c8d;
            text-align: center;
        }
 
        .placeholder i {
            font-size: 3rem;
            margin-bottom: 15px;
            color: var(--border-color);
         }
         }
          
 
         /* استایل‌های مخصوص موبایل */
         @media (max-width: 768px) {
         @media (max-width: 768px) {
             .filter-row {
             .container {
                 flex-direction: column;
                 padding: 8px 10px;
             }
             }
             .content-frame {
           
                 height: 500px;
            .selector-container {
                grid-template-columns: 1fr;
            }
           
            .library-content {
                padding: 15px;
            }
           
             .content-display {
                 height: 450px;
             }
             }
         }
         }
خط ۲۰۳: خط ۲۲۲:
<body>
<body>
     <div class="container">
     <div class="container">
         <div class="header">
         <div class="app-header">
             <h1>کتابخانه پدیا بایبل</h1>
             <h1>کتابخانه پدیا بایبل</h1>
             <div class="description">
             <p class="description">مطالعه کتاب‌ها و مقالات مذهبی - انتخاب هوشمند و نمایش محتوای تمیز</p>
                در این بخش می‌توانید کتاب‌ها و مقالات مختلف را مطالعه کنید.
                برای شروع، دسته‌بندی و سپس مورد مورد نظر خود را انتخاب نمایید.
            </div>
         </div>
         </div>
          
          
         <div class="filter-section">
         <div id="content-wrapper">
             <div class="filter-row">
             <!-- محتوا توسط JavaScript پر می‌شود -->
                <div class="form-group">
                    <label for="categorySelect">دسته‌بندی:</label>
                    <select id="categorySelect">
                        <option value="کتاب">کتاب</option>
                        <option value="مقاله">مقاله</option>
                    </select>
                </div>
               
                <div class="form-group">
                    <label for="bookSelect">انتخاب محتوا:</label>
                    <div class="custom-select-container">
                        <select id="bookSelect" class="custom-select">
                            <option value="">لطفاً یک مورد انتخاب کنید</option>
                        </select>
                       
                        <div class="custom-select-dropdown" id="customDropdown">
                            <div class="search-box">
                                <input type="text" id="dropdownSearch" placeholder="جستجو در محتواها...">
                            </div>
                            <div class="options-container" id="optionsContainer">
                                <!-- options here will be populated by JavaScript -->
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
       
        <div class="content-frame">
            <div id="iframeContainer">
                <div class="iframe-placeholder" id="iframePlaceholder">
                    لطفاً یک کتاب یا مقاله از لیست انتخاب کنید
                </div>
                <iframe id="contentFrame" class="clean-frame" src="about:blank" style="display: none;"></iframe>
            </div>
            <div class="action-buttons">
                <a id="wikiLink" href="#" class="wiki-link" target="_blank" style="display: none;">
                    مشاهده صفحه کامل در ویکی
                </a>
            </div>
         </div>
         </div>
     </div>
     </div>


     <script>
     <script>
         document.addEventListener('DOMContentLoaded', function() {
         // 🔒 سیستم حفاظتی - بررسی دامنه مجاز
            const categorySelect = document.getElementById('categorySelect');
        const ALLOWED_DOMAINS = [
             const bookSelect = document.getElementById('bookSelect');
             'pediabible.com',
             const customSelect = document.querySelector('.custom-select');
             'www.pediabible.com',
             const customDropdown = document.getElementById('customDropdown');
             'localhost',
             const dropdownSearch = document.getElementById('dropdownSearch');
             '127.0.0.1'
            const optionsContainer = document.getElementById('optionsContainer');
        ];
            const contentFrame = document.getElementById('contentFrame');
 
             const iframePlaceholder = document.getElementById('iframePlaceholder');
        // تابع بررسی مجاز بودن دامنه
            const wikiLink = document.getElementById('wikiLink');
        function isDomainAllowed() {
             const currentDomain = window.location.hostname;
              
              
             // داده‌های اصلی
             if (!currentDomain || currentDomain === '' || currentDomain === 'null') {
            const allBooks = [
                 return true;
                { value: "عیسی", text: "عیسی", category: "کتاب" },
            }
                 { value: "انجیل_متی", text: "انجیل متی", category: "کتاب" },
                { value: "مسیح", text: "مسیح", category: "مقاله" },
                { value: "تثلیث", text: "تثلیث", category: "مقاله" }
            ];
              
              
             let isDropdownOpen = false;
             return ALLOWED_DOMAINS.some(domain =>
            let currentCategory = 'کتاب';
                currentDomain === domain || currentDomain.endsWith('.' + domain)
           
            );
            // پر کردن select اصلی بر اساس دسته‌بندی
        }
            function updateBookSelect() {
 
                // پاک کردن select فعلی
        // تابع نمایش پیام دسترسی غیرمجاز
                bookSelect.innerHTML = '<option value="">لطفاً یک مورد انتخاب کنید</option>';
        function showAccessDenied() {
               
            const wrapper = document.getElementById('content-wrapper');
                // فیلتر کردن کتاب‌ها بر اساس دسته‌بندی
            wrapper.innerHTML = `
                const filteredBooks = allBooks.filter(book => book.category === currentCategory);
                <div style="text-align: center; padding: 40px; background: #fee; border-radius: 8px; border: 2px solid #f5c6cb; color: #721c24;">
               
                    <h3><i class="fas fa-ban"></i> دسترسی محدود شده</h3>
                // اضافه کردن کتاب‌های فیلتر شده به select
                    <p>این صفحه فقط بر روی دامنه <strong>pediabible.com</strong> قابل دسترسی است.</p>
                filteredBooks.forEach(book => {
                     <p>لطفاً از <a href="https://www.pediabible.com" style="color: #721c24; text-decoration: underline;">سایت اصلی</a> بازدید کنید.</p>
                     const option = document.createElement('option');
                </div>
                    option.value = book.value;
            `;
                    option.textContent = book.text;
        }
                    bookSelect.appendChild(option);
 
                });
        // تابع اصلی بارگذاری برنامه
               
        function loadApplication() {
                // اگر کتابی موجود است، اولین کتاب را انتخاب و نمایش بده
            if (!isDomainAllowed()) {
                if (filteredBooks.length > 0) {
                 showAccessDenied();
                    bookSelect.value = filteredBooks[0].value;
                 return;
                    customSelect.textContent = filteredBooks[0].text;
                    showBook(filteredBooks[0].value, filteredBooks[0].text);
                 } else {
                    bookSelect.value = '';
                    customSelect.textContent = 'لطفاً یک مورد انتخاب کنید';
                    showBook('', '');
                 }
             }
             }
            initializeLibraryApp();
        }
        // داده‌های کتاب‌ها و مقالات
        const libraryData = {
            'کتاب': [
                { name: "عیسی", displayName: "عیسی" },
                { name: "انجیل_متی", displayName: "انجیل متی" }
            ],
            'مقاله': [
                { name: "مسیح", displayName: "مسیح" },
                { name: "تثلیث", displayName: "تثلیث" }
            ]
        };
        // 🔧 برنامه اصلی کتابخانه
        function initializeLibraryApp() {
            const wrapper = document.getElementById('content-wrapper');
              
              
             // باز کردن/بستن dropdown
             // ایجاد ساختار HTML برنامه
             customSelect.addEventListener('click', function(e) {
             wrapper.innerHTML = `
                 e.stopPropagation();
                 <div class="selector-container">
                isDropdownOpen = !isDropdownOpen;
                    <div class="selector-box">
                 customDropdown.style.display = isDropdownOpen ? 'block' : 'none';
                        <h3 class="selector-title">دسته‌بندی</h3>
                        <select id="category-select">
                            <option value="">انتخاب دسته‌بندی</option>
                            <option value="کتاب">کتاب</option>
                            <option value="مقاله">مقاله</option>
                        </select>
                    </div>
                   
                    <div class="selector-box">
                        <h3 class="selector-title">انتخاب محتوا</h3>
                        <select id="content-select" disabled>
                            <option value="">انتخاب محتوا</option>
                        </select>
                    </div>
                 </div>
                  
                  
                 if (isDropdownOpen) {
                 <div class="library-content">
                     populateDropdownOptions();
                    <h2 class="content-title" id="content-title">لطفاً دسته‌بندی و محتوای مورد نظر را انتخاب کنید</h2>
                     dropdownSearch.value = '';
                      
                     dropdownSearch.focus();
                     <div id="content-container">
                 }
                        <div class="instructions">
             });
                            <div class="placeholder">
           
                                <i class="fas fa-book-open"></i>
             // بستن dropdown وقتی کلیک خارج شود
                                <p>برای مطالعه، لطفاً ابتدا دسته‌بندی و سپس محتوای مورد نظر خود را انتخاب کنید.</p>
             document.addEventListener('click', function() {
                            </div>
                isDropdownOpen = false;
                        </div>
                customDropdown.style.display = 'none';
                    </div>
            });
                   
              
                    <div class="navigation">
            // جلوگیری از بستن وقتی روی dropdown کلیک شود
                        <a href="#" class="wiki-link" id="wiki-page-link" target="_blank" style="display: none;">
            customDropdown.addEventListener('click', function(e) {
                            <i class="fas fa-external-link-alt"></i>
                e.stopPropagation();
                            مشاهده صفحه کامل
             });
                        </a>
           
                     </div>
             // پر کردن options در dropdown
                 </div>
             function populateDropdownOptions(searchTerm = '') {
             `;
                // فیلتر کردن کتاب‌ها بر اساس دسته‌بندی و جستجو
 
                const filteredBooks = allBooks.filter(book => {
             // عناصر DOM
                    const matchesCategory = book.category === currentCategory;
             const categorySelect = document.getElementById('category-select');
                    const matchesSearch = !searchTerm || book.text.toLowerCase().includes(searchTerm.toLowerCase());
            const contentSelect = document.getElementById('content-select');
                    return matchesCategory && matchesSearch;
             const contentTitle = document.getElementById('content-title');
                });
            const contentContainer = document.getElementById('content-container');
             const wikiPageLink = document.getElementById('wiki-page-link');
 
             // متغیرهای وضعیت فعلی
             let currentCategory = '';
            let currentContent = '';
 
            // رویداد تغییر دسته‌بندی
            categorySelect.addEventListener('change', function() {
                currentCategory = this.value;
                  
                  
                 optionsContainer.innerHTML = '';
                 if (currentCategory) {
               
                     contentSelect.disabled = false;
                filteredBooks.forEach(book => {
                     contentSelect.innerHTML = '<option value="">انتخاب محتوا</option>';
                     const optionItem = document.createElement('div');
                     optionItem.className = 'option-item';
                    optionItem.textContent = book.text;
                    optionItem.setAttribute('data-value', book.value);
                   
                    if (book.value === bookSelect.value) {
                        optionItem.classList.add('selected');
                    }
                      
                      
                     optionItem.addEventListener('click', function() {
                     // پر کردن لیست محتوا بر اساس دسته‌بندی
                         bookSelect.value = this.getAttribute('data-value');
                    libraryData[currentCategory].forEach((item, index) => {
                         customSelect.textContent = this.textContent;
                         const option = document.createElement('option');
                         isDropdownOpen = false;
                         option.value = index;
                        customDropdown.style.display = 'none';
                         option.textContent = item.displayName;
                          
                         contentSelect.appendChild(option);
                        if (bookSelect.value) {
                            showBook(bookSelect.value, this.textContent);
                        }
                     });
                     });
                      
                      
                     optionsContainer.appendChild(optionItem);
                     resetContent();
                 });
                 } else {
               
                     contentSelect.disabled = true;
                if (filteredBooks.length === 0) {
                     contentSelect.innerHTML = '<option value="">انتخاب محتوا</option>';
                     const noResult = document.createElement('div');
                     resetContent();
                     noResult.className = 'option-item';
                    noResult.textContent = 'نتیجه‌ای یافت نشد';
                     noResult.style.color = '#999';
                    noResult.style.cursor = 'default';
                    optionsContainer.appendChild(noResult);
                 }
                 }
            }
           
            // جستجو در dropdown
            dropdownSearch.addEventListener('input', function() {
                populateDropdownOptions(this.value);
             });
             });
           
 
             // فیلتر کردن بر اساس دسته‌بندی
             // رویداد تغییر محتوا
             categorySelect.addEventListener('change', function() {
             contentSelect.addEventListener('change', function() {
                 currentCategory = this.value;
                 currentContent = this.value;
                 updateBookSelect();
                  
                 populateDropdownOptions();
                 if (currentContent !== '') {
            });
                     displayContentWithIframe();
           
            // تغییر در select اصلی
            bookSelect.addEventListener('change', function() {
                if (this.selectedIndex > 0) {
                     const selectedOption = this.options[this.selectedIndex];
                    customSelect.textContent = selectedOption.text;
                    showBook(selectedOption.value, selectedOption.text);
                 } else {
                 } else {
                     customSelect.textContent = 'لطفاً یک مورد انتخاب کنید';
                     resetContent();
                    showBook('', '');
                 }
                 }
             });
             });
           
 
             // نمایش کتاب در iframe
             // نمایش محتوا با iframe - فقط محتوای اصلی
             function showBook(bookValue, bookText) {
             function displayContentWithIframe() {
                 if (!bookValue) {
                 const contentIndex = parseInt(currentContent);
                    contentFrame.style.display = 'none';
                const contentData = libraryData[currentCategory][contentIndex];
                    iframePlaceholder.style.display = 'flex';
                const contentName = contentData.name;
                    iframePlaceholder.textContent = 'لطفاً یک کتاب یا مقاله از لیست انتخاب کنید';
                const contentDisplayName = contentData.displayName;
                    wikiLink.style.display = 'none';
                    return;
                }
                  
                  
                 const cleanContentUrl = `https://www.pediabible.com/index.php/${bookValue}?action=render`;
                 contentTitle.textContent = `${contentDisplayName}`;
                const wikiPageUrl = `https://www.pediabible.com/index.php/${bookValue}`;
                  
                  
                 console.log('در حال بارگذاری:', cleanContentUrl);
                 const contentUrl = `https://www.pediabible.com/index.php/${contentName}?action=render`;
                const wikiUrl = `https://www.pediabible.com/index.php/${contentName}`;
                  
                  
                 // نمایش حالت لودینگ
                 contentContainer.innerHTML = `
                contentFrame.style.display = 'none';
                    <iframe
                iframePlaceholder.style.display = 'flex';
                        id="content-iframe"
                 iframePlaceholder.textContent = 'در حال بارگذاری محتوا...';
                        src="${contentUrl}"
                        class="content-display"
                        frameborder="0"
                        loading="lazy">
                    </iframe>
                 `;
                  
                  
                 // تنظیم iframe
                 wikiPageLink.href = wikiUrl;
                contentFrame.src = cleanContentUrl;
                 wikiPageLink.style.display = 'flex';
                  
            }
                // وقتی iframe لود شد
 
                contentFrame.onload = function() {
            function resetContent() {
                    contentFrame.style.display = 'block';
                contentTitle.textContent = 'لطفاً دسته‌بندی و محتوای مورد نظر را انتخاب کنید';
                    iframePlaceholder.style.display = 'none';
                contentContainer.innerHTML = `
                    console.log('محتوای iframe با موفقیت لود شد');
                     <div class="instructions">
                };
                        <div class="placeholder">
               
                            <i class="fas fa-book-open"></i>
                // اگر iframe خطا داد
                            <p>برای مطالعه، لطفاً ابتدا دسته‌بندی و سپس محتوای مورد نظر خود را انتخاب کنید.</p>
                contentFrame.onerror = function() {
                        </div>
                    iframePlaceholder.style.display = 'flex';
                    </div>
                    iframePlaceholder.textContent = 'خطا در بارگذاری محتوا. لطفاً دوباره تلاش کنید.';
                 `;
                    contentFrame.style.display = 'none';
                 wikiPageLink.style.display = 'none';
                     console.error('خطا در بارگذاری iframe');
                };
               
                // به‌روزرسانی لینک ویکی
                wikiLink.href = wikiPageUrl;
                 wikiLink.textContent = `مشاهده صفحه کامل "${bookText}"`;
                 wikiLink.style.display = 'inline-block';
             }
             }
              
 
            // بارگذاری اولیه
             console.log('✅ برنامه کتابخانه روی دامنه مجاز بارگذاری شد');
             updateBookSelect();
        }
 
        // 🔒 شروع برنامه با بررسی امنیتی
        document.addEventListener('DOMContentLoaded', function() {
             loadApplication();
        });
 
        // 🔒 جلوگیری از دسترسی به توابع از کنسول
        Object.defineProperty(window, 'libraryData', {
            value: null,
            writable: false,
            configurable: false
         });
         });
     </script>
     </script>
</body>
</body>
</html>
</html>

نسخهٔ ‏۱۲ اکتبر ۲۰۲۵، ساعت ۱۹:۲۸

<!DOCTYPE html> کتابخانه پدیا بایبل - مطالعه کتاب‌ها و مقالات

کتابخانه پدیا بایبل

مطالعه کتاب‌ها و مقالات مذهبی - انتخاب هوشمند و نمایش محتوای تمیز