Right alt functioning differently in Windows and ubuntu

I was trying to implement a full screen functionality using javascript. I just want to enter full screen by ‘f’ key only.Have written a function to implement this:

function shortcutsHandler(event) {
      const isModifierKeyHeld = event.ctrlKey || event.altKey || event.metaKey || event.shiftKey;

      if (event.key === 'f' && !isModifierKeyHeld) {
        enterFullScreen();
        return;
      }
    }

This is working fine in Ubuntu systems. One of my colleagues using Windows 11 system found that right alt + f is going full screen in his system.
How can I get this resolved?
Any solutions is highly appreciated.

Breadcrumbs in PageContainer in MaterialUI

There is a problem with rendering breadcrumbs:

I had this code:


import {AppProvider, Navigation, PageContainer} from '@toolpad/core';


const AdminLayout = () => {

  const NAVIGATION:Navigation = [
    {
      title: 'Home',
      segment: '',
    },
    {
      title: 'Users',
      segment: 'users',
      children: [
        {
          title: 'User list',
          segment: 'list',
        }
      ]
    }
  ];

  return (
    <AppProvider
      navigation={NAVIGATION}
    >
      <PageContainer>
        <div>
          page content
        </div>
      </PageContainer>
    </AppProvider>
  );
};

export default AdminLayout;


And result on main page:

result on main page

Result of inner page:

result of inner page

And if I remove this part:

    {
      title: 'Home',
      segment: '',
    },

then breadcrumbs are not showing

Can somebody help to show valid breadcrumbs of all pages?

CORS Error 405 (Method Not Allowed) – Google App Scripts

I have a very simple webpage, that only has a button which should submit the POST below to my google app scripts code. When testing, I click the button to run the SendTest() function and get the following error in the console:

Access to fetch at ‘https://script.google.com/macros/s/[redacted]/exec’ from origin ‘http://127.0.0.1:5500’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

On the Network tab, I see the OPTIONS request, but it returns a 405 Method Not Allowed error. I have tried manually adding the header with no luck.

Any point in the right direction would be greatly appreciated.

Simplified HTML / JS Code:

<!DOCTYPE html>
<button onclick="sendTest()">Send Test POST</button>
<script>
async function sendTest() {
  try {
    const payload = {
      responses: [
        { category: 'Test', question: 'Q?', recommendation: 'Do X' }
      ]
    };

    console.log('Sending:', JSON.stringify(payload));

    const response = await fetch('https://script.google.com/macros/s/[redacted]/exec', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(payload),
      mode: 'cors',
      credentials: 'omit'
    });

    console.log('Response status:', response.status);
    console.log('Response headers:', [...response.headers.entries()]);

    if (!response.ok) {
      const errorText = await response.text();
      throw new Error(`HTTP error! Status: ${response.status}, Details: ${errorText}`);
    }
    const result = await response.json();
    console.log('Response:', result);
  } catch (error) {
    console.error('Fetch error:', error);
  }

}

Google App Script Code:

function doGet(e) {
var output = JSON.stringify({
status: 'success',
message: 'It worked',
});

return ContentService.createTextOutput(output)
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
 return ContentService.createTextOutput(JSON.stringify({status: "success", "data": "my-data"})).setMimeType(ContentService.MimeType.JSON);
}
function doOptions(e) {
  const output = ContentService.createTextOutput('');
  output.setMimeType(ContentService.MimeType.TEXT);
  output.addHeader('Access-Control-Allow-Origin', '*');
  output.addHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
  output.addHeader('Access-Control-Allow-Headers', 'Content-Type');
  return output;
}

Vite / React – Package imports a file without a default export (UMD vs ES6). Can I force a default export through vite configuration?

I am working on a Vite / React application which has a pretty typical setup. I now need to integrate with an older package and I’m running into some issues. The package has code like this in a js file:

Promise.all([import('another-package/dist/js/jsFile')])
          .then(([sdk]) => {
            const mySdk = sdk.Sdk()
            doSomethingWith(mySdk)
          })

When this code is run, I get sdk.Sdk() is not a function. When I modify the code through local testing like below, I get a successful load.

const mySdk = sdk.default.Sdk()

So I believe this whole issue is about default exports. And from what I have been reading, the package being referenced, “another_package”, is a UMD modul. Which does not necessarily work out of the box when being imported from an ES6 module because there is no default export from the UMD module. (I may be off base here, so feel free to correct me if I got this wrong).

I’ve been looking into vite configuration changes I can make to solve this issue but I can’t quite figure it out. I’ve been especially looking at the “rollup/plugin-commonjs” package because it seems to be what could solve this issue. Any advice is greatly appreciated.

How can I “force” the default export to be assumed from the package I am integrating with without modifying the package code?

problem dynamically modifying the ‘auto’ value of the css property of ‘grid-template-column’ with javascript

It’s been a game changer learning to learn to use javascript and the DOM to modify css classes from an external stylesheet. For the most part it works fine. In my snippet, changing the background-color to yellow works fine. But when i try to modify the value of ‘grid-template-column’ – no go. I’m trying to change the value to … ‘auto, auto, auto’, but it won’t overwrite the original value inside the style sheet, which looks like this.. ‘grid-template-columns: auto auto auto auto auto auto;’

Thanks in advance.

       // create a reference to linked stylesheet
        const stylesheet = document.styleSheets[0];
        const rules = stylesheet.cssRules || stylesheet.rules; 
        
        // loop through the style sheet reference to find the classes to be modified and modify them

        for (let i = 0; i < rules.length; i++) {
            if (rules[i].selectorText === '.grid-container') {
                rules[i].style['background-color'] ='yellow';
                rules[i].style['grid-template-column'] = 'auto auto auto';
                break;
            }
        }
        

Fetch API is not successful on ios safari

for some reason, this works totally fine on android/windows or any device except when trying to view it on ios/iphone safari. the data wont be loaded. I even tried and made the API into a local JSON file, and still it wont read it.

What seems to be the issue? One issue is I don’t have a Mac to diagnose the problem, so how do I go around this issue with iOS? Thanks

async function loadQuranData() {
    try {
        // Load Quran text from API
        const quranResponse = await fetch('https://api.alquran.cloud/v1/quran/quran-uthmani');
        if (!quranResponse.ok) {
            throw new Error(`Failed to load Quran data: ${quranResponse.status}`);
        }
        const quranJson = await quranResponse.json();
        
        // Validate Quran data structure
        if (!quranJson.data || !quranJson.data.surahs) {
            throw new Error('Invalid Quran data format');
        }
        
        quranData = quranJson.data.surahs;
        
        // Populate surah select immediately after loading Quran data
        const select = document.getElementById('surahSelect');
        if (!select) {
            throw new Error('Surah select element not found');
        }
        
        // Clear existing options
        select.innerHTML = '<option value="">' + languages[currentLang].selectSurah + '</option>';
        
        // Create options for each surah
        quranData.forEach((surah, index) => {
            const option = document.createElement('option');
            option.value = index;
            option.textContent = `${surah.number}. ${surah.name}`;
            select.appendChild(option);
        });
        
        // Remove any existing event listeners
        const newSelect = select.cloneNode(true);
        select.parentNode.replaceChild(newSelect, select);
        
        // Add the event listener
        newSelect.addEventListener('change', (e) => {
            if (e.target.value !== '') {
                currentSurah = parseInt(e.target.value);
                currentAyah = 0;
                isReadingMode = false;
                document.getElementById('btnReadingMode').innerHTML = '<i class="fas fa-book-open"></i>';
                displayAyah();
            } else {
                resetQuranContent();
            }
        });

Tried 3 AI code bots, tried to make the API return into a JSON file and make it read it manually, and still won’t. Thanks

RxDB update operations fail with “proxy must report the same value for the non-writable, non-configurable property ‘”_meta”‘

I am trying to get RxDB to let me put items into a database, show them reactively using Vue, and update their values based on user input from the browser. It seems like a pretty typical use case but I can’t figure it out.

<template>
  <q-page class="flex flex-center">
    <div>
      <p>content is here</p>
      {{currentState}}
      <q-btn @click="setLang()">
      </q-btn>
    </div>
  </q-page>
</template>

<script setup>

import { onMounted, ref, toRaw } from 'vue';

import { createRxDatabase, removeRxDatabase } from 'rxdb';
import { getRxStorageLocalstorage } from 'rxdb/plugins/storage-localstorage';

import { RxDBDevModePlugin } from 'rxdb/plugins/dev-mode';
import { RxDBUpdatePlugin } from 'rxdb/plugins/update';
import { addRxPlugin } from 'rxdb/plugins/core';

import { wrappedValidateAjvStorage } from 'rxdb/plugins/validate-ajv';

addRxPlugin(RxDBDevModePlugin);
addRxPlugin(RxDBUpdatePlugin);

const dbHandle = ref();
const currentState = ref();

onMounted(async function () {
  console.log("mount");
  const storage = wrappedValidateAjvStorage({ storage: getRxStorageLocalstorage(), });
  removeRxDatabase('myDB', storage);

  let db = await createRxDatabase({
    name: 'myDB',
    storage: storage,
    multiInstance: true,
    eventReduce: true,
  });

  await db.addCollections({
    state: {
      schema: {
        title: 'state schema',
        version: 0,
        primaryKey: 'name',
        type: 'object',
        properties: {
          name: {
            type: 'string',
            maxLength: 100,
          },
          currentLanguage: { type: 'string' },
          count: {type: 'integer'},
        },
      },
    },
    });

  //set initial language to dutch
  await db.state.insert({
    name: "state",
    currentLanguage: "dutch",
    count: 0,
  });

  dbHandle.value = db;

  //query the single item that's in the table and track it reactively
  const state = dbHandle.value.state.findOne();
  state.$.subscribe((result) => {
    currentState.value = result;
  });
  console.log("done with mount");
});

//this is what happens when you click the UI button
async function setLang (evt)
{
  console.log("clicked");
  //find the single item and print its values
  const si = await dbHandle.value.state.findOne().exec();
  if (si != null)
  {
    console.log("SINFO: " + si.name + " " + si.currentLanguage + " " + si.count);
    console.log(toRaw(si));
  }
  else
  {
    console.log("it's null");
  }
  await si.patch({ currentLanguage: "french" });
}

</script>

I expected that clicking the UI button would cause the single tuple in the database to update its value from ‘dutch’ to ‘french’, and then this change would appear onscreen.

However, instead I get the error “Uncaught TypeError: proxy must report the same value for the non-writable, non-configurable property ‘”_meta”‘ ” (the call stack indicates that it originate in async code that I didn’t write: rx-query.ts:535).

Full call stack:

Uncaught TypeError: proxy must report the same value for the non-writable, non-configurable property '"_meta"'
    deepFreeze utils-object.ts:9
    deepFreeze utils-object.ts:7
    deepFreezeWhenDevMode index.ts:62
    rxChangeEventToEventReduceChangeEvent rx-change-event.ts:51
    calculateNewResults event-reduce.ts:133
    __ensureEqual rx-query.ts:602
    _ensureEqualQueue rx-query.ts:535
    utils-object.ts:9:44

(Mozilla Firefox 136.0.4)

Current packages installed from packages.json:

  "dependencies": {
    "@quasar/extras": "^1.16.4",
    "pouchdb": "^9.0.0",
    "quasar": "^2.16.0",
    "rxdb": "^16.12.0",
    "rxjs": "^7.8.2",
    "vue": "^3.4.18",
    "vue-router": "^4.0.0"
  },

I created a generic vue/quasar project using `npm init quasar’ and this is my only user-written component.

Loading csv file instead of array D3 grid visualization

I am trying to show a grid of circles in D3, I’m following this tutorial[https://www.tutorialsteacher.com/d3js/loading-data-from-file-in-d3js]. Instead of inputting a simple array (something like [1,2,3,4]), I’m trying to use a csv file as input. I have tried to parse the input file like this:

    var data =d3.csv("test.csv", function(data){
    console.log(data);
    });

The csv file looks like this:

enter image description here

The output in the console looks like this:
enter image description here

But when I try to use its inputs to draw the circles, it doesn’t seem to recognize the data object. I am trying to add the circles like this:

    var container = svg.append("g")
        .attr("transform", "translate(135,130)");
    
    container.selectAll("circle")
            .data(data)
            .enter().append("circle")
            .attr("id", function(d){return "id"+d;})
            .attr('cx', function(d){return x(d%numCols);})
            .attr('cy', function(d){return y(Math.floor(d/numCols));})
            .attr('r', 12)
            .attr('fill', function(d){return d < percentNumber ? twitterFillActive : twitterFill;})
            .style('stroke', 'white');

When I change the data object to [1,2,3,4], the circles do show up, so I think the problem lays with how I am reading the csv file. I have tried changing data to data[1], I have also tried to remove the column names. I have also tried different parsing functions such as d3.parseCsv.

Any help would be highly appreciated!

JavaScript NameSpace already declared error

I am loading a script with the jQuery getScript function after the document is ready.
The script has these 2 lines:

const myNameSpace={};

function myNameSpace.test() {
}

I am getting this error:

error message

I have used NameSpaces elsewhere in the project in the same way and did not get this error.

Loading CSV data from Box into Javascript?

I have some regularly-updated CSV files on Box that I would like to display on a website. My plan was to create the table with html, then read the CSV file with d3 and update the contents of the table. If the CSV data were on GitHub, I could do something like this:

d3.csv(data_url).then(create_table);
function create_table(data) {
   <code to update a table>
}

However, that doesn’t seem to work with a Box URL. I can generate a URL for the data on Box with the format “https://xxxxxxxx.box.com/shared/static/xxxxxxxxx.csv”. Going to that link directly will download the CSV file, but inserting it into the code above produces a “Cross-Origin Request Blocked” error. Is this possible? Since the CSV files update hourly, it would be best if I could read directly from Box to my website, rather than moving the data elsewhere.

I have this problem with a bootstrap carousel slide show. babvoka

On line 14 of my HTML code I keep getting an Invalid attribute: href error in my <div> tag, and I’m not sure why it’s complaining since I thought href should work there.

Then, further down in the carousel line 32 is throwing an Image source not found error for images/slide/hármas.PNG, and I don’t understand if it’s the special character in the filename or just a path issue.

On line 47 there’s a Bootstrap-related error saying Invalid Bootstrap class: container-flex and I can’t figure out if I need to include some additional Bootstrap CSS or if it’s just deprecated.

In the audio section line 92 is throwing an Unsupported audio format: audio/mpeg3 error, and I didn’t even know mpeg3 wasn’t valid since it’s so close to mpeg.

I tried multiple ways, looked for the lines where it said the errors, and didn’t find anything, I hope you can help

$(document).ready(function() {
  // Indítsuk el a carousel-t betöltéskor
  $('.carousel').carousel({
    interval: 1500
  });
});
body {
  background-color: #dcd2d2;
  overflow: hidden;
}

hr {
  background-color: rgb(77, 0, 0);
  height: 1px;
}

.navbar {
  background-color: rgb(77, 0, 0);
}

.navbar-nav .nav-link {
  color: white;
}

.navbar-brand {
  margin-left: 20%;
}

/* Stílus a diavetítéshez */
.carousel-item {
  height: 10vh;
  /* 10% magasság */
  background-color: white;
}

.carousel-item img {
  margin: auto;
  max-height: 10vh;
  max-width: 33vh;
}

/* Görgethető rész */
.scrollable {
  margin-top: 17vh;
  height: 83vh;
  overflow-y: scroll;
  font-family: Georgia, 'Times New Roman', Times, serif;
}

.def-img {
  text-align: center;
}

.popup {
  display: none;
  position: absolute;
  background-color: white;
  padding: 10px;
  border: 1px solid #ccc;
  left: 50%;
  transform: translateX(-50%);
}

.nav-item:hover .popup {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">

<div class="container-fluid fixed-top justify-content-center">
  <div id="carouselExampleSlidesOnly" class="carousel slide " data-ride="carousel">
    <div class="carousel-inner">
      <div class="carousel-item active">
        <img src="images/slide/egyes.PNG" class="d-block w-100" alt="Első kép">
      </div>
      <div class="carousel-item">
        <img src="images/slide/kettes.PNG" class="d-block w-100" alt="Második kép">
      </div>
      <div class="carousel-item">
        <img src="images/slide/hármas.PNG" class="d-block w-100" alt="Harmadik kép">
      </div>
    </div>
  </div>
  <nav class="navbar navbar-expand-lg navbar-dark">
    <div class="container justify-content-center">
      <a class="navbar-brand">A basszusgitár</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
      <div class="collapse navbar-collapse justify-content-center" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item">
            <a class="nav-link" href="#definicio">Definíció</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#tortenet">A basszusgitár története</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#davie504">Davie504 szólói</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#validacio">Validáció
            <img class="popup" src="images/validacio.PNG" alt="Második kép">
          </a>
          </li>
        </ul>
      </div>
    </div>
  </nav>
</div>
<div class="scrollable">
  <div class="container-fluid">
    <div id="definicio" class="container">
      <h2>Definíció</h2>
      <div class="row">
        <div class="col-md-4 def-img">
          <img src="images/definicio/bal.PNG" class="img-fluid" alt="Elektro-akusztikus basszusgitár">
          <p>Elektro-akusztikus basszusgitár</p>
        </div>
        <div class="col-md-4 text-justify">
          <p>A basszusgitár a gitár mélyebb hangfekvésű változata. Legismertebb ezek közül az elektromos basszusgitár, ami külsőre hasonlít az elektromos gitárhoz, de legtöbbször csak négyhúros, és menzúrája, tehát rezgőhúr-hosszúsága nagyobb, húrjai vastagabbak a gitárhoz képest. Hangolása legtöbbször a nagybőgőével azonos, tehát húrjai a gitár alsó húrjaihoz képest egy oktávval mélyebbek.</p>
          <p>Az elektromos basszusgitár az 1950-es években jelent meg a szórakoztatózenében a nagybőgő helyettesítő hangszereként. A legtöbb műfajban a ritmusszekcióhoz tartozik, de a dzsessz és funk stílusokban szólózásra is használják. Meghatározó szerepe miatt szinte az összes könnyűzenei műfaj elengedhetetlen szereplője.</p>
          <img src="images/definicio/Jackson.jpg" class="img-fluid bottom" alt="Elektromos basszusgitár">
          <p>Elektromos basszusgitár</p>
        </div>
        <div class="col-md-4 def-img">
          <img src="images/definicio/jobb.PNG" class="img-fluid" alt="Akusztikus basszusgitár">
          <p>Akusztikus basszusgitár</p>
        </div>
      </div>
    </div>
    <div id="tortenet" class="container">
      <hr>
      <h2>A basszusgitár története</h2>
      <div class="row">
        <div class="col-md-2 def-img">
          <img src="images/story/Paul_Tutmarc.jpg" class="img-fluid" alt="Paul Tutmarc">
          <p>Paul Tutmarc</p>
        </div>
        <div class="col-md-10 text-justify">
          <p>Paul Tutmarc seattle-i zenész és feltaláló az 1930-as évek elején a nagybőgő helyettesítésére egy gitárszerű basszushangszert készített tömör testtel, bundokkal, elektromos hangszedővel, melyet játék közben vízszintesen kellett tartani. Az új hangszer a bőgőnél jóval kisebb volt, egyszerűbb volt szállítani, a bundozott fogólap megkönnyítette a pontos intonációt. Körülbelül 100 példány készült belőle.
          </p>
        </div>
      </div>
      <div class="row">
        <div class="col-md-6 text-justify">
          <p>1951-ben hozta létre Leo Fender kaliforniai villamosmérnök a világ első sorozatban gyártott basszusgitárját, a Fender Precision Basst (avagy a P-Basst). Lekerekített élekkel és testtel, valamint egyetlen darab osztott (dominó) pickuppal, 34"-os menzúrával és 20 érintővel rendelkezett.
          </p>
        </div>
        <div class="col-md-6 def-img">
          <img src="images/story/pbass.jpg" class="img-fluid" alt="Precision bass">
          <p>Fender Precision bass</p>
        </div>
      </div>
      <div class="row ">
        <div class="col-md-7 def-img">
          <img src="images/story/jbass.jpg" class="img-fluid" alt="Jazzbass">
          <p>Fender Jazzbass</p>
        </div>
        <div class="col-md-5 text-justify">
          <p>Fender következő basszusgitárja az 1960-ban bemutatott Fender Jazz Bass volt, ami a Fender Jazzmaster gitár basszusváltozata volt. Két egytekercses (single coil) hangszedő volt rajta, egy a húrlábnál, egy pedig a koptatólapon a nyaknál. Hangszedőnként külön hangerő- és hangszínszabályozója volt 1961-ig, amikor átalakították a hangszer elektronikáját: ettől kezdve a hangszert két hangerő-, de csak egy hangszínszabályozóval gyártották. Basszusgitároknál a mai napig ez számít szokásos passzív elektronikának. Nyakmérete megegyezik a P-bassével, de nyakprofilja annyiban különbözik, hogy a fej felé erősen elvékonyodik.
          </p>
        </div>
      </div>
      <div class="row">
        <div class="col-md-4 text-justify">
          <p>Az érintő nélküli basszusgitárok (fretless bass) profi zenészek számára biztosítanak lehetőséget az igazán kifinomult játékra. A húrok közvetlenül a fogólap felületének nyomódnak neki, emiatt a hangszer hangja eltér az érintővel ellátott gitárok hangszínétől. Esetenként az érintők helyett csak jelölő vonalak vannak, amelyek nem emelkednek ki a fogólapból, de leggyakrabban ezek is elmaradnak. Az első „fretless” hangszert Bill Wyman, a Rolling Stones basszusgitárosa készítette 1961-ben, egy olcsó japán basszusgitár bundjainak eltávolításával.</p>
        </div>
        <div class="col-md-3 def-img">
          <img src="images/story/Bill_Wyman.jpeg" class="img-fluid" alt="Bill Wyman">
          <p>Bill Wyman</p>
        </div>
        <div class="col-md-5 text-justify">
          <div>
            <p>
              A fej nélküli gitár ötletét Ned Steinberger vetette fel, aki a 80-as évek végén felborított minden elképzelést arról, hogy hogyan is kellene egy basszusgitárnak kinéznie, és hogyan kellene elkészíteni. A basszusgitár kicsi és fej nélküli lett, anyaga öntött epoxigyanta szénszálas és üvegszálas megerősítéssel.
            </p>
          </div>
          <div class="def-img">
            <img src="images/story/steinberger.jpg" class="img-fluid" alt="Steinberger gitár">
            <p>Steinberger gitár</p>
          </div>
        </div>
      </div>
    </div>
    <div id="davie504" class="container text-justify">
      <hr>
      <h2><a href="https://youtube.com/@Davie504" target="_blank">Davie504</a> szólói</h2>
      <p>Davide Biale (1994.04.05., Savona, Olaszország), vagy ahogyan az internetes közösség nagy része ismeri, Davie504, egy olasz zenész és YouTuber, aki főleg basszusgitáron játszik. Biale különleges stílusa és humorérzéke által vált népszerűvé a YouTube-on és más közösségi média platformokon. Eddig 13,4 millióan iratkoztak fel a csatornájára. Az egyik legkiemelkedőbb jellemzője Davie504-nek az a kreativitás és sokoldalúság, amit a basszusgitárjátékban mutat. Különféle módokon használja a hangszerét: ujjpengetés, slapping, tapping, testütés pengetéssel tarkítva, stb. Ez a sokoldalúság és a különleges technikák használata egyedi hangzást kölcsönöz a produkcióinak. Emellett humorral és öniróniával átitatott stílusa is hozzájárul az izgalmas tartalmak létrehozásához. Videóiban gyakran viccelődik a basszusgitáros sztereotípiákon és a zenei kliséken, ami könnyed hangulatot kölcsönöz műsorainak.</p>
      <div class="row">
        <div class="col-md-4">
          <audio controls>
            <source src="music/FRETLESS_BASS_SOLO.mp3" type="audio/mpeg">
            A böngésződ nem támogatja a hangfájlok lejátszását.
        </audio>
          <p class="def-img">Fretles (bund nélküli) basszusgitár szóló</p>
        </div>
        <div class="col-md-4">
          <audio controls>
            <source src="music/ACOUSTIC_BASS_SOLO.mp3" type="audio/mpeg">
            A böngésződ nem támogatja a hangfájlok lejátszását.
        </audio>
          <p class="def-img">Akusztikus basszusgitár szóló</p>
        </div>
        <div class="col-md-4">
          <audio controls>
            <source src="music/Slap_Bass_solo.mp3" type="audio/mpeg">
            A böngésződ nem támogatja a hangfájlok lejátszását.
        </audio>
          <p class="def-img">Slap basszusgitár szóló</p>
        </div>
      </div>
    </div>
  </div>

How do I post Client side and Server postback at the same time?

I have been running in circles with trying to figure out how to send pardot a tracking post, but at the same time complete my regular registration form in my ASP.NET webpage. I cannot use, or pardot has issues with certain ajax style posts. I need to send cookie data in the client side post. We have tried to send a server-side-post to pardot and that does work, but of course it does not send the tracking data. So the task came down to trying to send on the client side in the OnClientClick event. The following code does not work, but its what I was attempting.

What I’ve tried:

<asp:Button id="Button1" runat="server" OnClientClick="ContactInfo_Check()" UseSubmitBehavior="false" />

function ContactInfo_Check() {
 //validation code...
              pardotsend({
                  emailAddress: document.getElementById("<%=lbl_customeremail.ClientID %>").value,
                  userId: "",
                  firstName: document.getElementById("<%=tb_firstname.ClientID %>").value,
                  lastName: document.getElementById("<%=tb_lastname.ClientID %>").value,
                  company: document.getElementById("<%=tb_Company.ClientID %>").value,
                  phone: document.getElementById("<%=tb_phone.ClientID %>").value,
                  zipcode: ''
              });

pardot.js, I’ve tried with or without the iframe nonsense.

function pardotsend(payload) {

var form = document.createElement("form");
var element1 = document.createElement("input"); 
var element2 = document.createElement("input");  
var element3 = document.createElement("input"); 
var element4 = document.createElement("input");  
var element5 = document.createElement("input"); 
var element6 = document.createElement("input");  

// create an iframe 
var addIframe = document.createElement('iframe');
addIframe.setAttribute('name', 'sample-iframe');
addIframe.setAttribute('onload', 'frameisloaded()');
addIframe.style.height = "60px";
addIframe.style.width = "60px";
document.body.appendChild(addIframe);

form.id = "pardot-form"
form.method = "POST";
form.action = "https://go.fathommfg.com/l/137771/2025-05-06/3n1xdt";
form.target = "sample-iframe";

element1.value=payload['emailAddress'];
element1.name="email_address";
form.appendChild(element1);  

element2.value=payload['userId'];
element2.name="user_id";
form.appendChild(element2);

element3.value=payload['firstName'];
element3.name="first_name";
form.appendChild(element3);

element4.value=payload['lastName'];
element4.name="last_name";
form.appendChild(element4);

element5.value=payload['company'];
element5.name="company";
form.appendChild(element5);

element6.value=payload['phone'];
element6.name="phone";
form.appendChild(element6);

document.body.appendChild(form);

form.submit();

}

        function frameisloaded () {
        __doPostBack("viewquote_Click", "OnClick"); //initiate the form postback
    }

So I’m really doing a double post. If I remove the ‘Target’, and take out the iframe…. And I put the __doPostBack(“viewquote_Click”) in the ContactInfo_Check function after the Pardotsend, the postback seems to stop the Script-post-back from happening. Or if I put in the original Click-event to go to ‘ViewQuote_Click’ the same thing happens. That is the partdot script post never completes, or never returns, or never has a chance to reach the destination before the server-side posts-back.